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

如何在不原生支持fetch的Node版本中使用Next.js后端的fetch?

Next.js 在 Node 17.5 前支持后端 fetch 的实现方式

Next.js 之所以能在 Node 17.5(原生支持 fetch 的版本)之前就在后端(如 getStaticProps、getServerSideProps 这类服务端/构建时运行的函数)使用 fetch,核心是框架内置了 fetch 的跨环境 polyfill,具体细节如下:

  • 内置 polyfill 抹平环境差异:Next.js 为了实现前后端统一的 API 体验,预先集成了适配 Node 环境的 fetch 实现。早期版本主要依赖 isomorphic-unfetch 这个库——它在浏览器端直接复用原生 fetch,在 Node 端则基于 node-fetch(专门为 Node 环境开发的 fetch 兼容库)做封装,让开发者不用关心环境差异,直接调用标准的 fetch API 即可。

  • 自动适配运行环境:当你在 getStaticProps 或 getServerSideProps 里写 fetch 代码时,Next.js 会自动判断当前运行环境:如果是浏览器,就用原生 fetch;如果是 Node(构建阶段或服务端渲染阶段),就切换到内置的 polyfill 实现,完全不需要开发者手动引入或配置额外依赖。

  • 后续版本的演进:即使到了 Next.js 13+ 改用 App Router 之后,框架依然保留了对 fetch 的内置支持,甚至在此基础上增加了缓存、重新验证等增强特性,但在 Node 17.5 之前的版本中,核心逻辑还是依赖 polyfill 来提供 fetch 能力。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 10:32:38