Node.js中的异步请求模块

时间:2016-10-25 13:33:41

标签: node.js

我正在使用Node.js创建一个项目。我想并行调用我的请求。为实现这一目标,我安装了异步模块。这是我的代码:

var requests = [{
    url:url,
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer ' + req.cookies.apitoken
    },
    json: finalArr,
}];

async.map(requests, function(obj, callback) {

    // Iterator function
    request(obj, function(error, response, body) {

        if (!error && response.statusCode == 200) {

            // Transform data here or pass it on
            var body = JSON.parse(body);
            callback(null, body);
        }
        else {
            var body = JSON.stringify(body);
            console.log(body)
            callback(error || response.statusCode);
        }
    });
})

我每次都在undefined获得console.log(body)。当我使用此模块的GET请求用于其他请求时,一切正常。

1 个答案:

答案 0 :(得分:0)

看起来你正在使用request模块,但没有标记它。

如果我是对的,那么你的选项对象是不正确的,从the documentation开始,没有一个data密钥被尊重。相反,您应该使用bodyformDatajson,具体取决于您推送的数据类型。从标题中,我会选择json

var requests = [{
    url:url,
    method: 'POST',
    headers: { // Content-Type header automatically set if json is true
        'Authorization': 'Bearer ' + req.cookies.apitoken
    },
    json: finalArr,
}];