Require.js 模块(节点获取)加载上下文错误
Require.js module(node-fetch) load for contex error
我正在制作一个网站,但我正在为 Require.js 苦苦挣扎。
我想要 node-fetch
包:
const fetch = require('node-fetch');
// Getting avatar of random discord user
const token = process.env.TOKEN;
async function fetchit() {
const response = await fetch(`https://discord.com/api/v9/users/410902667318001684`, {
headers: {
Authorization: `Bot ${token}`
}
})
if (!response.ok) throw new Error(`Error status code: ${response.status}`)
else{
let obj = await response.json()
console.log(obj.avatar)
}
}
fetchit()
我得到这个错误:
Error: Module name "node-fetch" has not been loaded yet for context: _. Use require([])
https://requirejs.org/docs/errors.html#notloaded
我尝试使用 const fetch = require(['node-fetch'])
,但出现另一个错误:
Error: Script error for "node-fetch"
https://requirejs.org/docs/errors.html#scripterror
这是我的 HTML 脚本标签:<script data-main="script.js" src="require.js">
我怎样才能解决这个问题并使其正常工作?
我用的是node-fetch@2.6.6
您无法使用Require.JS加载node-fetch
。
Require.js 是 AMD 模块.
的模块加载器
node-fetch
是一个 Common.JS 模块 (这也取决于 Node.js 提供的 APIs,它们不是在浏览器中可用)。
AMD 和 Common.JS 模块是非常不同的模块格式。他们的加载器不兼容,即使他们都使用名为 require
的函数(他们使用 不同的 名为 require
的函数)。
(从版本 3 开始,node-fetch
已经是 converted to an ECMAScript module 但仍然依赖于 Node.js 并且仍然与 Require.JS 不兼容)。
改用浏览器原生 Fetch API。 node-fetch
是一个旨在与其兼容的库,因此您可以在浏览器中使用相同的 API 和 Node.js.
我正在制作一个网站,但我正在为 Require.js 苦苦挣扎。
我想要 node-fetch
包:
const fetch = require('node-fetch');
// Getting avatar of random discord user
const token = process.env.TOKEN;
async function fetchit() {
const response = await fetch(`https://discord.com/api/v9/users/410902667318001684`, {
headers: {
Authorization: `Bot ${token}`
}
})
if (!response.ok) throw new Error(`Error status code: ${response.status}`)
else{
let obj = await response.json()
console.log(obj.avatar)
}
}
fetchit()
我得到这个错误:
Error: Module name "node-fetch" has not been loaded yet for context: _. Use require([])
https://requirejs.org/docs/errors.html#notloaded
我尝试使用 const fetch = require(['node-fetch'])
,但出现另一个错误:
Error: Script error for "node-fetch"
https://requirejs.org/docs/errors.html#scripterror
这是我的 HTML 脚本标签:<script data-main="script.js" src="require.js">
我怎样才能解决这个问题并使其正常工作?
我用的是node-fetch@2.6.6
您无法使用Require.JS加载node-fetch
。
Require.js 是 AMD 模块.
的模块加载器node-fetch
是一个 Common.JS 模块 (这也取决于 Node.js 提供的 APIs,它们不是在浏览器中可用)。
AMD 和 Common.JS 模块是非常不同的模块格式。他们的加载器不兼容,即使他们都使用名为 require
的函数(他们使用 不同的 名为 require
的函数)。
(从版本 3 开始,node-fetch
已经是 converted to an ECMAScript module 但仍然依赖于 Node.js 并且仍然与 Require.JS 不兼容)。
改用浏览器原生 Fetch API。 node-fetch
是一个旨在与其兼容的库,因此您可以在浏览器中使用相同的 API 和 Node.js.