node.js - 节点中间件发出 API 请求
问题描述
我有一个看起来像这样的路由文件,
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});
});
我假设我做错了什么?
解决方案
将文件的实现更改setEmp
为:
const { getEmpById } = require("ApiFile");
const setEmp = (employerId) => {
return (req, res, next) => {
getEmpById(employerId);
}
}
module.exports = setEmp
即,删除employerId
作为返回函数的第四个参数。employerId
由于. _ getEmpById
_Closures
推荐阅读
- c++ - 在 Qt Creator 中调试 c++ 程序时如何正确忽略 throw 中断?
- vue.js - 图像src vue中的动态路径
- api - 使用 Tensorflow-API 运行实时对象检测时出错
- excel - 尝试从嵌套目录返回或列出所有具有特定工作表名称的 Excel 文件
- php - 通过定义静态的方法访问数据,php代码不提供任何输出
- swift - 有没有办法找到实际的 SwiftUI API 文档(而不仅仅是开发者文档)?
- android - 使用 adb 发送带有额外 `Bundle` 的广播
- mongodb - Mongodb 聚合管道优化 - $match 的 2 阶段
- sql - 如何自动将一个单元格中的多个文本字段转换为不同的行或其他格式以进行报告?
- c++11 - QComboBox currentIndexChanged 在 QGraphicsView 上无法正常工作