I use Express with Typescript and Controllers. I try to make a BaseController who contains Request and Response of each request. I tried something like this but it doesn't work.
export * as express from 'express';
const req = express.Request;
I use Express with Typescript and Controllers. I try to make a BaseController who contains Request and Response of each request. I tried something like this but it doesn't work.
export * as express from 'express';
const req = express.Request;
You can create "Controller
" classes to group your route handlers, but Express always pass req
and res
(Request and Response objects) to the route handlers.
Exemple using TypeScript:
// very simplistic example
// "Controller" class
export class UsersController {
// route handler
async getUsers(req: Request, res: Response) {
try {
const users = await this.usersRepository.fetchUsers();
return res.json(users);
} catch (e) {
console.error(e);
return res.status(500).end();
}
}
}
And somewhere with your Express router:
const usersController = new UsersController();
app.get('/users', usersController.getUsers);
As a bonus suggestion, I'd recommend having a look at the Nest project, which offers a great developer experience to anyone eager to use both TypeScript and Express together.