迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Node.js >

Node 中 ReferenceError: fetch is not define 错误

作者:迹忆客 最近更新:2022/11/18 浏览次数:

ReferenceError: fetch is not defined”发生在 fetch() 方法不被支持的环境中——最常见的是 NodeJs。 要解决该错误,需要安装并导入 node-fetch 包,该包在 NodeJs 运行时提供了一个 fetch() 兼容的 API。

要解决“ReferenceError: fetch is not defined”,安装并导入 node-fetch 包。

如果我们的项目没有 package.json 文件,请在项目的根目录中创建一个:

# 👇️ 只有当你还没有 package.json 文件时才运行它
$ npm init -y

现在安装 node-fetch 库。

$ npm install node-fetch

现在我们可以像在浏览器中使用 fetch() 方法一样导入和使用该模块。

import fetch from 'node-fetch';

async function getUser() {
  try {
    const response = await fetch('https://randomuser.me/api/');

    if (!response.ok) {
      throw new Error(`Error! status: ${response.status}`);
    }

    const result = await response.json();
    return result;
  } catch (err) {
    console.log(err);
  }
}

console.log(await getUser());

在撰写本文时,要在 NodeJs 项目中使用 ES6 模块导入和导出,我们必须在 package.json 文件中将类型属性设置为 module

{
  "type": "module",
  // ... 👇️ rest
}

如果我们使用 TypeScript,则不必为 node-fetch 包安装类型,因为它们是默认包含的。

如果我运行我的 NodeJs 脚本,我会通过调用 API 获得结果。

较新版本的 node-fetch 包仅与导入/导出的 ES6 模块语法兼容。 如果您使用旧的 NodeJs 版本,请安装 node-fetch 包的版本 2。


Node 中 ReferenceError: fetch is not define 错误

仅当我们使用较旧的 NodeJs 版本并希望使用 require 语法而不是导入/导出时才这样做。

$ npm install node-fetch@2

我们安装了 node-fetch 包的第 2 版。

确保我们的 package.json 文件中没有将 type 属性设置为 module

现在我们可以使用较旧的 require 函数导入 fetch 包。

// 👇️ Using older require syntax
const fetch = require('node-fetch');

async function getUser() {
  try {
    const response = await fetch('https://randomuser.me/api/');

    if (!response.ok) {
      throw new Error(`Error! status: ${response.status}`);
    }

    const result = await response.json();
    return result;
  } catch (err) {
    console.log(err);
  }
}

我们必须安装 node-fetch 包的版本 2 才能在我们的 NodeJs 应用程序中使用 require 语法。

最好与客户端和服务器端代码之间的导入保持一致。 但是,如果我们必须支持旧版本的 NodeJs,这种方法就可以完成工作。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Node.js 中编码 URL

发布时间:2023/03/27 浏览次数:201 分类:Node.js

在这篇简短的文章中,我们将学习如何在 Node.js 中进行 URL 编码。

在 Node.js 中编码 Base64

发布时间:2023/03/27 浏览次数:155 分类:Node.js

在本文中,我们将学习如何在 Node.js 中将字符串或文本转换为 base64。

Node.js 与 React JS 的比较

发布时间:2023/03/27 浏览次数:137 分类:Node.js

本文比较和对比了两种编程语言,Node.js 和 React。React 和 Node.js 都是开源 JavaScript 库的示例。 这些库用于构建用户界面和服务器端应用程序。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便