我最近开始使用本机获取功能(节点17+(
我今天意识到它缺少node-fetch
的一些功能,例如agent
为什么?
有计划添加吗?
这很遗憾,因为我需要将node-fetch
添加到我的项目中作为
参见
- https://www.npmjs.com/package/node-fetch#custom-代理人
- https://nodejs.org/api/globals.html#fetch
为什么http
模块中的选项不可用,实际的答案是,也许令人惊讶的是,节点的内置fetch()
全局不使用传统内置http
/https
模块提供的HTTP堆栈。
相反,它使用了一种称为undici的并行从头开始的HTTP堆栈重写。
考虑到fetch()
的HTTP堆栈与标准HTTP堆栈是完全独立的,您可以提供给http.get
等人的选项不适用于fetch()
也就不足为奇了。
undici的文档可以在这里找到。httpAgent
s被CCD_。您可以将自定义Dispatcher
传递给fetch(…, { dispatcher })
,从而可以自定义fetch
的HTTP行为。
本机fetch函数是实验性的,即尚未准备好用于生产,很可能存在问题。
https://nodejs.org/dist/latest-v18.x/docs/api/globals.html#fetch
同样,jfriend00点是非常有效的:;在nodejs中内置fetch((的全部意义不就是它与浏览器中的API完全相同吗">