Node-express : fetch.Header() 不是构造函数
Node-express : fetch.Header() is not a constructor
我在 node-express 应用程序中使用 node-fetch 模块,之前我曾经以这种方式导入它:
const fetch = require("node-fetch")
但现在使用 te=he version "node-fetch": "^3.0.0",它不允许我使用 require,而是建议使用 import 因为它是一个 ES 模块。
但我面临的主要问题是新版本中的 Headers,它抛出错误 fetch.Headers() is not a constructor,尽管我一直在使用它直到上一个版本。
以下是我的代码:
const express = require('express');
const port = 8080;
const app = express();
const ejs = require('ejs');
const fetch = import("node-fetch");
app.use(express.json());
app.use(express.static(__dirname + "/public"));
app.get('/', (req, res) => {
let myHeaders = new fetch.Headers();
var uri = uri
var options = {
method: 'GET',
};
fetch(uri, options)
.then(response => response.text())
.then(result => {
console.log(result);
list = JSON.parse(result);
res.render(__dirname + '/index.html');
})
.catch(error => console.log('error', error));
})
app.listen(port, () =>{
console.log("Listening at 8080");
})
错误:
TypeError: fetch.Headers 不是构造函数
我没有导入 node-fetch 包,因为我只是在 SSR 渲染上动态导入它(next.js),所以我没有收到关于找不到包的错误
if( typeof window === 'undefined' ) {
const Headers = (await import('node-fetch')).Headers
headers = new Headers(headers)
}
这就是我出错的原因
我在 node-express 应用程序中使用 node-fetch 模块,之前我曾经以这种方式导入它:
const fetch = require("node-fetch")
但现在使用 te=he version "node-fetch": "^3.0.0",它不允许我使用 require,而是建议使用 import 因为它是一个 ES 模块。
但我面临的主要问题是新版本中的 Headers,它抛出错误 fetch.Headers() is not a constructor,尽管我一直在使用它直到上一个版本。 以下是我的代码:
const express = require('express');
const port = 8080;
const app = express();
const ejs = require('ejs');
const fetch = import("node-fetch");
app.use(express.json());
app.use(express.static(__dirname + "/public"));
app.get('/', (req, res) => {
let myHeaders = new fetch.Headers();
var uri = uri
var options = {
method: 'GET',
};
fetch(uri, options)
.then(response => response.text())
.then(result => {
console.log(result);
list = JSON.parse(result);
res.render(__dirname + '/index.html');
})
.catch(error => console.log('error', error));
})
app.listen(port, () =>{
console.log("Listening at 8080");
})
错误: TypeError: fetch.Headers 不是构造函数
我没有导入 node-fetch 包,因为我只是在 SSR 渲染上动态导入它(next.js),所以我没有收到关于找不到包的错误
if( typeof window === 'undefined' ) {
const Headers = (await import('node-fetch')).Headers
headers = new Headers(headers)
}
这就是我出错的原因