在异步瀑布上丢失了属性值

时间:2014-06-05 19:49:25

标签: node.js express node-async

我正在尝试模拟快速响应对象以执行某些单元测试。到目前为止,我的模拟响应对象看起来像这样:

module.exports.responseHelper = {
    response: "",
    send : function(val){
        this.response = val;
    }
}

我的问题是,如果我将此对象传递给这样的方法:

var async = require('async');

exports.sample = function (req, res) {
    async.waterfall([
        function(callback){
            callback(null, res);
        },
        function(res, callback){
            callback(null, res);
        },
        function(res, callback){
            callback(null, res);
        }
    ], function (err, res) {
        console.log("res before: " + res.response);
        res.send("something4");
        console.log("res after: " + res.response);
    });
};

这样称呼:

var route = require("../routes/testing");
var response = require("./requestHelper").responseHelper;

var req = {
    params: {
        someID: 1
    }
}
route.sample(req, response);
console.log("final res: " + response.response);

response.response值始终只是“”(空字符串)

理想情况下,我不想更改路由实现,但我希望能够获得在瀑布结束时传递的任何值。

0 个答案:

没有答案