Node Express Middleware如何发送res,req对象

时间:2016-06-25 11:55:58

标签: node.js express httpresponse

我无法在函数之间发送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()

1 个答案:

答案 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);
})

您也可以将此与路线(获取,发布等等)一起使用。当您想要将数据发送到下一阶段时,只需将下一个第三个参数添加到路线