如何在控制器中获取请求

时间:2018-11-21 08:43:50

标签: node.js typescript express

我将Express与Typescript和Controllers一起使用。我尝试使BaseController包含每个请求的请求和响应。我尝试了类似的方法,但是没有用。

export * as express from 'express';

const req = express.Request;

1 个答案:

答案 0 :(得分:0)

您可以创建“ Controller”类来对您的 route handlers 进行分组,但是Express始终会传递reqres(请求和响应对象)到路由处理程序。

使用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的任何人提供了绝佳的开发人员体验。