在 express 中为路由路由使用前缀
Use prefix for route routes in 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;
}
如何在索引中定义前缀或每个模块至少定义一个前缀?
目前我有这个:
角色模块
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;
}