【发布时间】:2018-12-11 23:26:24
【问题描述】:
我正在尝试将 Node/Express 中 MEAN Stack 中的数据从一个中间件发送到另一个中间件,我设置了一个路由,其中我有 2 个命名函数,一个查询一些数据并将其传递给应该执行的第二个函数对数据进行一些其他处理...这是我的路由功能,它在“get”方法上有两个中间件功能:
function DemonstratorRoutes(router) {
var DemonstratorController = require('../controllers/DemonstratorController')
router.route('/Demonstrator')
.get(DemonstratorController.list_all_Demonstrator, DemonstratorController.doSomeStuff)
module.exports = DemonstratorRoutes;
功能实现如下,只是简单的演示/试用目的..:
exports.list_all_Demonstrator = function(req, res,next) {
//console.log(req.body)
Demonstrator.find({}, function(err, demo) {
if (err){
console.log(err);}
else {
res.locals.myvar = demo;
}
});
next();
};
exports.doSomeStuff = function(req,res,next) {
var data;
data = res.locals.myvar
console.log("Dies ist 2te Funktion:", data);
res.send(data);
}
我在某个地方看到过那个例子......但是他们确实实现了它,他们只是一个接一个地定义匿名函数,用逗号分隔,但我想使用命名函数并在路由文件中使用它们作为参数用于 Express 路由功能中间件.. 但是,我有第二个函数中的数据“未定义”的问题,我不明白为什么这不起作用,与函数提升有关吗?也许我必须以其他方式定义我的功能?还是我的回调错了?
【问题讨论】:
-
只是为了不让你的生活过于复杂,看看
Express Routing。有更简单的方法可以做到这一点。
标签: javascript node.js express callback middleware