我无法在函数之间发送res
(请求对象)。以下代码由我的app.js(主要中间件)执行:
//app.js calls File.js
//File1.js
var file2 = require('./File2.js);
export.modules = function (req,res,next) {
file2(data) {
res.send(data); //<-- this is not working
}
}
//File2.js
export.modules = function(data){
data = 'test';
}
此外,我不明白何时使用next()
或何时使用res.end()
。
答案 0 :(得分:1)
从你的代码片段中很难理解,所以我将解决你关于next vs send的第二个问题
您在中间件中使用下一个,这意味着您不希望用数据回复您的客户端,但是您希望从另一个中间件获取数据,当您到达最终的中间件时,您需要使用res。发送();
请注意,您不能多次使用res.send,因此您必须在完成处理后调用它并希望将数据响应给用户。
您必须使用Express中间件,如下所示:
var app = express();
app.use(function(req,res, next){
// some proccessing
req.proccessData = "12312312";
next();
})
app.use(function(req,res, next){
// here you respond the data to the client
res.send(req.proccessData);
})
您也可以将此与路线(获取,发布等等)一起使用。当您想要将数据发送到下一阶段时,只需将下一个第三个参数添加到路线