javascript - axios - 从响应对象中获取请求 URI 数据

标签 javascript node.js request axios

因此,我正在尝试将 Node 项目从使用 request.js 迁移到使用 axios.js

当我使用请求包时,我能够像这样从响应对象中获取 URI 数据

request(req, (err, response) => {
  if (err) console.error(err);
  console.log(response.statusCode);
  console.log(response.request.uri);
  console.log(response.request.uri.hash);
  console.log(response.request.uri.host);
});

但是当我这样使用 axios 时

axios(req)
  .then(response => {
    console.log(response.status);
    console.log(response.request.uri);
  })
  .catch(err => console.error(err));

response.request.uri

undefined

那么,我是否使用了 axios 包错误,还有另一种方法可以获取我想要的信息,或者 axios 不支持该信息??

最佳答案

您可以通过访问 response.config.url response.request.responseURL 来访问它,但如果您只想要 URI,则将需要使用正则表达式,或者您可以通过使用数组或字符串方法来使用 JS。

示例:

const axios require('axios');
const url = require('url');

axios(req)
  .then(response => {
    const parsedURL = url.parse(response.config.url);
    console.log(parsedURL.host);
  })
  .catch(err => console.error(err));

如果您不需要解析的 URL 信息并且不想要另一个包:

// Remove the URL Protocol (https:// & http://) using regex. 
const removeHttpProtocol = (url) => url.replace(/(^\w+:|^)\/\//, '');

axios(req)
  .then(response => {
    console.log(const responseURI = removeHttpProtocol(response.config.url);
    console.log(responseURI);
  })
  .catch(err => console.error(err));

关于javascript - axios - 从响应对象中获取请求 URI 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59323618/

相关文章:

javascript - 是否可以通过回调函数访问函数内的属性?

Django cms插件POST请求

java - 如何从 Android 应用程序向 WHMCS 安装发送正确的发布请求?

javascript - SonarQube 无法识别 String.prototype 方法

javascript - 从完全限定字符串获取 JSON 属性

javascript - 发出 Node https 请求的 AWS lambda 错误

mysql - AdonisJs Mysql 关系无法正常工作!每当我尝试从数据库中获取时都给出空数组

python - Flask发送html数据回 View

javascript - 有条件地使用 setState 和 redux 状态的正确方法

node.js - 配置 Passport 接受没有正文的请求?