簡體   English   中英

如何在同一app.get函數中的res.redirect方法上傳遞req.setHeaders方法?

[英]How do I pass a req.setHeaders method on res.redirect method within the same app.get function?

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方法,我要在其中獲取用戶輸入的參數,然后將其重定向到bing api以返回圖像搜索的搜索結果。 大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模塊 ,然后通過管道將響應作為對原始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);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM