strapi.fetch 使用原生 fetch() API
页面摘要: 在 Strapi 5 中,
strapi.fetch包装的是原生fetch()API 而非 node-fetch,需要将timeout参数替换为signal: AbortSignal.timeout()。
在 Strapi 5 中,strapi.fetch 对象现在包装的是原生 node Fetch API,而非 node-fetch。
本页面是破坏性变更数据库的一部分,提供有关该破坏性变更的信息,以及从 Strapi v4 迁移到 Strapi 5 的附加说明。
破坏性变更说明
在 Strapi v4 中
Strapi.fetch 包装的是 node-fetch 的 fetch(),并接受相同的参数。
在 Strapi 5 中
不再使用 node-fetch 模块。strapi.fetch 调用原生的 fetch() 方法。
迁移
说明
- 参数大体兼容,但存在一些差异。
手动操作步骤
如果你在 Strapi v4 的代码中向 strapi.fetch 传入了 timeout 参数,请用 signal 属性替换,如下所示:
在 Strapi v4 中
strapi.fetch(url, {
method: 'POST',
body,
headers,
timeout: 1000,
}); // 接受 node-fetch 的 RequestInit 类型
在 Strapi 5 中
strapi.fetch(url, {
method: 'POST',
body,
headers,
signal: AbortSignal.timeout(1000)
}); // 接受 Node 原生的 RequestInit 类型