Skip to main content

Create a Controller

Following the MVC design pattern, Winter was built to assist developers in organizing their projects. As a result, there is no need to create routes instead, a controller class will handle this logic.

Create your first controller

Create a file at src/GreetingsController.ts:

src/GreetingsController.ts

@RestController('/greetings')
class GreetingsController {

@GetMapping()
hello(w: Context) {
return w.text('Hello, is so Cold!!❄️❄️')
}
}

Register a new controller at src/main.ts:


Winter.create()
.setName('WinterFramework') // Project Name
.setEnv('dev') // dev = 1337 | prod = 8080
// .setPort(3000) // Custom Port,
.addController(GreetingsController) // ADD GreetingsController here
.addMiddleware((app) => {
// Middlewares
app.use('*', async (ctx, next) => {
console.log(`${ctx.req.method} ${ctx.req.url}`)
await next()
})
})
.start()

A new route is now available at - /greetingslocalhost:1337/greetings.