Dav*_*idT 7 javascript require node.js node-fetch
从这里复制:https : //github.com/node-fetch/node-fetch#json ...我的代码:
const fetch = require('node-fetch');
async function doFetch() {
const response = await fetch('https://api.github.com/users/github');
const data = await response.json();
console.log(data);
}
doFetch()
Run Code Online (Sandbox Code Playgroud)
错误信息——指的是fetch('https://...)调用:
This expression is not callable.
Type 'typeof import("[...]/node_modules/@types/node-fetch/index")' has no call signatures.
Run Code Online (Sandbox Code Playgroud)
我已经搜索过这个网站和其他网站,这个错误在许多模块中似乎很常见,尽管我只能找到使用import而不是require. 我猜这很简单,但我就是不知道如何用 require 语法解决这个问题。
我究竟做错了什么?提前致谢!
如果重要:JavaScript(不是 TypeScript)。节点.js。Mac 上的 VSCode。错误消息是由dbaeumer.vscode-eslint插件生成的。
实际文档说:
v3 中的 node-fetch 是仅 ESM 模块 - 您无法使用 require() 导入它
(连抄来的地方import现在都在用)
所以你应该使用以下import方式:
import fetch from 'node-fetch';
Run Code Online (Sandbox Code Playgroud)
如果你真的坚持这种require方式,请使用这个技巧:
const {default: fetch} = require('node-fetch');
Run Code Online (Sandbox Code Playgroud)