【发布时间】:2022-01-14 12:22:25
【问题描述】:
在我的 Express 应用程序中,我在 routes.ts 中实现路由:
var Router = express.Router();
Router.route('/models/:modelId')
.get(function (req, res) {
service.setParameter(req)
service.get(req,res)
});
Router.route('/models/:modelId')
.post(function (req, res) {
service.setParameter(req)
service.post(req,res)
});
还有express.ts:
export const App = express()
App.use(express.json())
App.use(express.urlencoded({ extended: true }))
App.use(helmet())
App.use('/', Router)
在每个路由器调用中,我想执行一段代码 service.setParameter(req),它从“params”获取特定参数,但我不想显式添加到每个路由器方法。
我尝试在路由器前后添加它作为中间件
App.use('/', Router)
App.use(function(req, res, next){
service.setParameter(req)
next()
})
但是如果我在Router之前定义了,那么路由还没有设置,我没有得到我想要的参数,如果我在之后定义了,那么中间件就不会被执行。
如何以通用方式执行 service.setParameter(req) 以使其适用于所有路由?
【问题讨论】:
标签: javascript node.js typescript express