You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在node-fetch中通过response对象获取对应的request请求对象

node-fetch 从response获取request对象的支持情况

结论

node-fetch 支持从response对象获取关联的request信息,具体用法受版本影响:

1. v3.x版本(推荐)

v3.x默认已将请求对象挂载到response.request属性,你可以直接读取对应属性,不需要额外配置。注意response.request是同步属性,不需要加await调用:

import fetch from 'node-fetch';

const response = await fetch('https://example.com/api', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ foo: 'bar' }),
  agent: yourCustomAgent
});

if (!response.ok) {
  // 直接读取请求相关信息用于重试
  const request_headers = response.request.headers;
  const request_url = response.request.url;
  const request_body = response.request.body;
  const request_agent = response.request.agent;
}

2. v2.x版本

v2.x默认没有暴露response.request属性,可通过两种方式实现需求:

  • 方案1:发起请求前提前存储请求参数
const fetch = require('node-fetch');

const requestUrl = 'https://example.com/api';
const requestOptions = {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ foo: 'bar' }),
  agent: yourCustomAgent
};

const response = await fetch(requestUrl, requestOptions);
if (!response.ok) {
  // 直接读取预存的请求参数即可
  const request_headers = requestOptions.headers;
  const request_url = requestUrl;
  // ...其他属性从requestOptions中读取
}
  • 方案2:封装fetch方法,自动挂载request属性到response,后续使用和v3完全一致
const originalFetch = require('node-fetch');

const fetch = async (url, options = {}) => {
  const response = await originalFetch(url, options);
  // 手动挂载请求信息
  response.request = {
    url,
    method: options.method || 'GET',
    headers: options.headers || {},
    body: options.body,
    agent: options.agent
  };
  return response;
};

// 后续使用示例
const response = await fetch('https://example.com/api', {});
console.log(response.request.url);

注意:如果请求body为流格式,读取一次后就无法复用,做重试逻辑时建议提前将body缓存为字符串、Buffer等可重复读取的格式再传入。

内容的提问来源于stack exchange,提问作者professrr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 13:42:02