首页 > 解决方案 > 我想使用 fetch-node() 调用第三方 API,但我收到错误 require() ES 模块。我是nodejs的新手

问题描述

const express= require('express');
const fetch= require('node-fetch');
const app= express();

app.listen(3000, () =>{
  console.log('starting server at port 3000');
});

// 启用解析请求正文中的 json 对象

app. use(express.json());
app.use(express.urlencoded({extended:true}));

//API调用另一个API即第三方API

app.get('/project', async(req,res)=>{

//第三方 URL const api_url= 'https://api.fyre.hypersign.id/api/v1/project/demo-event-001?isPublic=true'; const fetch_response=等待获取(api_url);常量结果 = 等待 fetch_response.json(); res.json(结果);

});

标签: node.jsapi

解决方案


您不能将 ES 模块加载为 CommonJS 模块。导致错误的代码是require('node-fetch'). 您必须使用node-fetchESM 的v3+ 。

使用支持 CommonJS的v2.6.5node-fetch或将您的应用更改为使用import而不是require.


推荐阅读