首页 > 解决方案 > (已关闭)TypeError: fetch is not a function,我做错了什么?

问题描述

我正在尝试使用node-fetch以获取具有此 JSON 文件的网站,我可以将其用于我的不和谐机器人。

代码(JS):

const fetch = import("node-fetch")

// some code until

data = ""
        try {
            data = await fetch(`http://meme-api.herokuapp.com/gimme/${subreddit.toLowerCase()})}`).then(res => res.json)
            errored = false
        } catch (error) {
            throw error;
        }

它错误地说:

TypeError: fetch is not a function

我该如何解决?

仅供参考,使用 require() 会导致错误:

const fetch = require("node-fetch")
              ^

Error [ERR_REQUIRE_ESM]: require() of ES Module F:\Users\Basil Atif\Folders\VsauceBot\node_modules\node-fetch\src\index.js from F:\Users\Basil Atif\Folders\VsauceBot\src\Commands\reddit.js not supported.
Instead change the require of index.js in F:\Users\Basil Atif\Folders\VsauceBot\src\Commands\reddit.js to a dynamic import() which is available in all CommonJS modules.    
  code: 'ERR_REQUIRE_ESM'
}

标签: javascriptnode.jsnode-fetch

解决方案


尝试使用这种导入方式:

import fetch from 'node-fetch';

推荐阅读