如何在同一app.get函数内的res.redirect方法上传递req.setHeaders方法?

var express = require('express'); var app = express(); var PORT = process.env.PORT; app.get('/', function(req, res){ res.json('Enter your query parameters for an image search like so: https://api.cognitive.microsoft.com/bing/v5.0/images/search?q=cats&count=10 and for the latest search results enter the url ttps://api.cognitive.microsoft.com/bing/v5.0/images/*'); }); 

这里是app.get方法,我想要获取用户input的参数,然后将其redirect到bing api,以返回图像search的search结果。 大的api需要一个API密钥传递到头部,就像Ocp-Apim-Subscription-Key一样:•••••••••••••••••••••• ••••••。 我该怎么做呢?

 app.get('/imagesearch/:image*', function(req, res){ console.log(req.params.image); console.log(req.query.count); res.redirect('https://api.cognitive.microsoft.com/bing/v5.0/images/search?q='+req.params.image+'&count='+req.query.count); }); app.listen(PORT, function(){ console.log('Express listening on: '+PORT); }); 

由于现在听起来您只是想从远程站点获取数据,然后将其作为原始请求的响应返回,您可以通过使用request模块来做到这一点,然后将响应作为对原始响应的响应http请求。

 const request = require('request'); app.get('/imagesearch/:image*', function(req, res){ let options = { url: 'https://api.cognitive.microsoft.com/bing/v5.0/images/search?q='+req.params.image+'&count='+req.query.count, headers: {"Ocp-Apim-Subscription-Key": "xxxxx"} }; request(options).pipe(res); });