将动态标头添加到请求 - 承诺选项(节点)

时间:2017-10-27 04:40:48

标签: javascript node.js

我在使用变量(headersTest)向请求承诺(npm)请求添加标头时遇到问题。如果我对选项中的值进行硬编码,我会收到预期的API响应。如果我在变量中创建标头并将其添加到选项,则API会拒绝该请求(无法识别标头密钥)。当我记录headersTest变量时,它看起来与硬编码值相同,但不起作用。

以下是相关的代码部分:

const headersTest = "'x-custom-date':'Fri, 27 Oct 2017 09:45:18 EST'";
console.log(headersTest);

    const options = {
        method: "GET",
        uri: 'http://' + whatEvz,
        qs: {
            queryString
        },
        headers: {
            //'x-custom-date':'Fri, 27 Oct 2017 09:45:18 EST'
            headersTest
        },
        json: true
    };

    rp(options)
        .then(function(results){
            res.send(results);
        })
        .catch(function (err) {
            res.send("Shite! That didn't work! " + err.message);
        });

似乎我在理解变量在选项中的解释方面缺少一些东西。任何指导都将非常感谢。

1 个答案:

答案 0 :(得分:0)

我通过使用对象属性解决了这个问题,而不是尝试将对象传递给options.headers。我实际上有一个标头数组,并使用lodash添加标题,如下所示:

 _.each(myHeaders, function (val, key) {
            _.each(val, function (val, key) {
                options.headers[key] = val;
            });
        })