如何知道我将被重定向到的 url? [nodejs] [节点获取]

Posted

技术标签:

【中文标题】如何知道我将被重定向到的 url? [nodejs] [节点获取]【英文标题】:How to know the url that I will be redirected to? [nodejs] [node-fetch] 【发布时间】:2020-10-15 00:33:29 【问题描述】:

我正在尝试从谷歌云中的 url 加载 JSON 文件。我正在使用 node-fetch 包,它可以正常工作几个小时。问题是 google 经常更改重定向的 url。如何向我将被转发到的 URL 发出获取请求?或者至少知道我将被转发到哪个网址?我看到还有一个名为 request 的包,但它已被弃用。

这是代码

var express = require('express');
var router = express.Router();
var fetch = require('node-fetch');

router.get('/', async (req, res) => 
  
  const url = 'https://storage.cloud.google.com/blablabla/config.json';

  fetch(url)
    .then((res) => 
      if (res.ok) 
        return res.json();
      
    )
    .then((data) => res.send( data ))
    .catch((err) => res.send(err));
);

module.exports = router;

【问题讨论】:

我放弃了这种方法并将这个 json 文件保存在本地,因为它非常小。我想 thr0n 的回答会奏效! node-fetch 默认遵循重定向 (github.com/node-fetch/node-fetch#options)。请注意,您正在使用 fetch 响应覆盖路由器设置的“res”。 'res' 【参考方案1】:

您可以在响应标头中查找最终 URL。在您的情况下,res.headers.get('location') 应该可以解决问题。

【讨论】:

以上是关于如何知道我将被重定向到的 url? [nodejs] [节点获取]的主要内容,如果未能解决你的问题,请参考以下文章