【发布时间】:2021-03-18 17:16:10
【问题描述】:
我有一个如下所示的路由文件,
function getEmp(req,res,next,empId) {
return(req, res, next) => {
getEmpById(req, res, next, employerId);
}
}
module.exports = {
router.get('/go', getEmp('my-id'), (req, res) => {
res.render('view.njk', { empDetails: res.local.empDetails});
});
这正如我所期望的那样工作,API 调用,数据在视图中呈现,但是我不希望我的中间件在路由文件中起作用我希望它是独立文件,所以我移动了放到它自己的文件中,
const { getEmpById } = require("ApiFile");
const setEmp = (employerId) => {
return (req, res, next, employerId) => {
getEmpById(employerId);
}
}
module.exports = setEmp
当我将上述内容拉入我的路由文件并将其用作中间件时,甚至不会调用中间件吗?
在单独的文件中使用中间件函数,我的路由看起来像这样,
const setEmp = require("../middleware/setEmp");
module.exports = {
router.get('/go', setEmp('my-id'), (req, res) => {
res.render('view.njk', { empDetails: res.local.empDetails});
});
我认为我做错了什么?
【问题讨论】:
-
您是否调用
next()来运行下一个中间件? -
它在我对 api 的调用中运行
标签: node.js express middleware