我正在制作一個網站,但我正在為 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">
我怎樣才能解決這個問題并讓它作業?
uj5u.com熱心網友回復:
您無法node-fetch使用 Require.JS加載。
Require.js 是AMD 模塊的模塊加載器。
node-fetch是一個Common.JS 模塊(它也依賴于 Node.js 提供的 API,這些 API 在瀏覽器中不可用)。
AMD 和 Common.JS 模塊是非常不同的模塊格式。即使它們都使用名為 的函式require(它們使用不同的名為 的函式require),它們的加載器也不兼容。
(從第 3 版開始,node-fetch已轉換為 ECMAScript 模塊,但仍依賴于 Node.js,并且仍與 Require.JS 不兼容)。
請改用瀏覽器原生Fetch API。node-fetch是一個旨在與其兼容的庫,因此您可以在瀏覽器和 Node.js 中使用相同的 API。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/396440.html
標籤:javascript 网络 模块 要求 节点获取
