Getting Started
Build an HTTP server with Moost in under a minute.
Prerequisites
- Node.js 18 or higher
- npm, pnpm, or yarn
Scaffold a project
bash
npm create moost -- --httpOr with a project name:
bash
npm create moost my-web-app -- --httpThe scaffolder creates:
my-web-app/
├── src/
│ ├── controllers/
│ │ └── app.controller.ts
│ └── main.ts
├── package.json
└── tsconfig.jsonWhat you get
main.ts — the entry point:
ts
import { MoostHttp } from '@moostjs/event-http'
import { Moost } from 'moost'
import { AppController } from './controllers/app.controller'
const app = new Moost()
void app.adapter(new MoostHttp()).listen(3000, () => {
app.getLogger('moost-app').info('Up on port 3000')
})
void app
.registerControllers(AppController)
.init()app.controller.ts — your first handler:
ts
import { Get } from '@moostjs/event-http'
import { Controller, Param } from 'moost'
@Controller()
export class AppController {
@Get('hello/:name')
greet(@Param('name') name: string) {
return `Hello, ${name}!`
}
}Run it
bash
npm install && npm run devOpen http://localhost:3000/hello/World — you'll see Hello, World!.
How it works
new Moost()creates the application instancenew MoostHttp()creates the HTTP adapter — the bridge between Moost and Node's HTTP serverregisterControllers()tells Moost which classes contain route handlersinit()wires everything together — resolves dependencies, binds routes, prepares interceptors
The @Get('hello/:name') decorator registers the method as a GET handler. The :name segment becomes a route parameter, extracted by @Param('name').
What's next
- Routing & Handlers — HTTP methods, route patterns, and handler basics
- Reading Request Data — extract query params, headers, cookies, and body
- Controllers — organize handlers into logical groups