2017-10-27 13 views
0

変数(headersTest)を使用してrequest-promise(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); 
     }); 

私が変数はオプションの中で解釈されている方法についての私の理解で何か欠けているようです。どんな指導も大歓迎です。

+0

あなたは 'ヘッダーをお勧めします:{「X-カスタム日付」: '金、2017年10月27日9時45分18秒EST '} ' –

+0

ありがとう@JaromandaX、あなたは正しいですが、私はこれをオプションオブジェクトに動的に取得する方法を理解できませんでした。私は今それを考え出した。 –

答えて

0

オブジェクトをoptions.headersに渡そうとするのではなく、オブジェクトプロパティを使用して解決しました。私は実際にヘッダの配列を持っていたので、のようなヘッダを追加するlodashを使用:

_.each(myHeaders, function (val, key) { 
      _.each(val, function (val, key) { 
       options.headers[key] = val; 
      }); 
     }) 
関連する問題