在我用VSCode编写的安全帽项目的一个测试中,我想检索NFT的元数据对象,该对象存储在提供的URL中。
我以为我必须导入fs来读取URL,但我正在键入方法,我武断地决定使用一个名为fetch
的方法,以便使用一些包(如angular的“HTTP”)来执行获取。
但我感到惊讶的是,没有报告任何错误的关键字'fetch'似乎fetch关键字是以某种方式定义的。
想知道它是从哪里来的,右键单击将我带到了一个名为lib.dom.ts
的文件,显然是typescript节点模块的一部分。
问题是,它实际上并不工作,即使它编译。
当我的函数,包括这些行,
let uri = await nft.tokenURI(tokenId);
let response = await fetch(uri);
let json = await response.json();
使用hardhat测试运行时,我没有得到编译错误,而是得到运行时错误-ReferenceError: fetch is not defined
有没有一种方法可以在没有运行在浏览器中的typescript项目中正确使用fetch
,而不必导入一些HTTP包?
1条答案
按热度按时间jaxagkaj1#
您可能使用了过时版本的
node.js
fetch
仅在v17.5以上版本中可用。