我将Express与Typescript和Controllers一起使用。我尝试使BaseController包含每个请求的请求和响应。我尝试了类似的方法,但是没有用。
export * as express from 'express';
const req = express.Request;
答案 0 :(得分:0)
您可以创建“ Controller
”类来对您的 route handlers 进行分组,但是Express始终会传递req
和res
(请求和响应对象)到路由处理程序。
使用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();
}
}
}
在Express路由器的某个位置:
const usersController = new UsersController();
app.get('/users', usersController.getUsers);
作为一个建议,我建议您看看Nest项目,该项目为渴望同时使用TypeScript和Express的任何人提供了绝佳的开发人员体验。