Express中间件如何发送res, req对象



我无法在函数之间发送res(请求对象)。下面的代码由我的app.js(主要的express中间件)执行:

//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()

从你的代码片段中很难理解,所以我将解决你关于next vs send的第二个问题

您在中间件中使用next,这意味着您还不想用数据响应客户端,但您希望处理来自另一个中间件的数据,当您到达最终中间件时,您需要使用res.send();

注意,不能多次使用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);
})

你也可以在路由(get, post等)中使用它。当你想要将数据发送到下一阶段时,只需将next作为第三个参数添加到路由

相关内容

  • 没有找到相关文章

最新更新