fetch failed / timeout error 获取外部URL失败
fetch failed / Timeout Error / UND_ERR_CONNECT_TIMEOUT
问题现象
TypeError: fetch failed
at Object.fetch (node:internal/deps/undici/undici:11600:11)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Object.searchPodcast (/Users/code/movie-review/backend/src/movie-api.ts:41:32)
at async /Users/leah/code/movie-review/backend/src/index.ts:27:21 {
cause: ConnectTimeoutError: Connect Timeout Error
at onConnectTimeout (node:internal/deps/undici/undici:8544:28)
at node:internal/deps/undici/undici:8502:50
at Immediate._onImmediate (node:internal/deps/undici/undici:8533:13)
at processImmediate (node:internal/timers:478:21) {
code: 'UND_ERR_CONNECT_TIMEOUT'
}
}
想获取一个API的信息,再保存成json形式,用于之后调用,但是一直在fetch这一步骤报错。
分析过程
获取这个http://www.omdbapi.com API的时候没出问题,但是换了一个https的API就有问题了。
搜索到在node的GitHub issue里面提到跟node版本有关系,20.x.x的版本有问题,换了18.x.x的还是有同样问题,排除node版本原因。
解决方法
在电脑设置里面找到dns设置,改成8.8.8.8后成功了。
why #todo
参考链接
https://github.com/nodejs/node/issues/46375