从express js中间件返回一个值

时间:2014-01-24 07:12:37

标签: javascript node.js express middleware

下面的代码是我的快速中间件调用

var c = app.use(myMiddleware());

console.log(c);

//中间件功能

module.exports = function() {

    return function(req, res, next) {
       var b =  {'A' : 1};
        next();
    }

};

在应用程序启动后,在上面的代码console.log打印控制台中。

我想将一个值从中间件返回/传递给我的快递应用程序。请问任何建议?

2 个答案:

答案 0 :(得分:1)

将您想要在请求范围中使用的任何内容设置为req对象。

app.use(function(req, res, next) {
  var b =  {'A' : 1};
  req.b = b;
  next();
});

然后您可以在请求处理程序中使用它:

app.get('/test', function(req, res){
  console.log(req.b);
});

答案 1 :(得分:0)

这应该这样做:

var c = app.use(myMiddleware({
  callback: function(c) {
    console.log(c)
  }
}))

//中间件功能

module.exports = function(options) {
  return function(req, res, next) {
    var b =  {'A' : 1}
    next()
  }
}

或者这个:

var x = myMiddleware()
var c = app.use(x.function)
console.log(x.something)

//中间件功能

module.exports = function(options) {
  options && options.callback && options.callback('Hello world!')

  return {
    function: function(req, res, next) {
      var b =  {'A' : 1}
      next()
    },
    something: 'Hello world!',
  }
}