express中的路由使用前缀



如何在索引中定义前缀或至少每个模块一个?

目前我有这个:

角色模块

export class RoleRoutes extends RouteConfig {

constructor(app: Application) {
super(app, "/role");
}
configureRoutes() {
this.app.route(process.env.PREFIX + this.getName() + '/:id').get([JWT.authenticateJWT, RoleController.getOne.bind(RoleController)]);
this.app.route(process.env.PREFIX + this.getName()).get([JWT.authenticateJWT, RoleController.getAll.bind(RoleController)]);
this.app.route(process.env.PREFIX + this.getName()).post([JWT.authenticateJWT, RoleController.create.bind(RoleController)]);
this.app.route(process.env.PREFIX + this.getName()).put([JWT.authenticateJWT, RoleController.update.bind(RoleController)]);
return this.app;
}
}
指数

const routes: Array<RouteConfig> = [];
routes.push(new RoleRoutes(app));

我看到了不同的解决方案,但它们与我的结构不匹配。

使用路由器。在顶部添加

const express = require('express')

(或者你导入的东西)然后在定义

configureRoutes() {
var router = express.Router();
router.use(JWT.authenticateJWT);
router.get('/:id', RoleController.getOne.bind(RoleController))
router.get('/', RoleController.getAll.bind(RoleController));
router.post('/', RoleController.create.bind(RoleController));
router.put('/', RoleController.update.bind(RoleController));
this.app.use(process.env.PREFIX + this.getName(), router)
return this.app;
}

最新更新