簡體   English   中英

Node.js 要求本地文件拋出錯誤

[英]Node.js require local file throws an error

這是我項目的文件系統。

root
index.js
package.json
...etc
commamds
- ping.js
- eval.js
- ...etc

這是一個普通的 discord.js 機器人。 但是當我嘗試重新加載命令時,我使用以下代碼:

...etc
let pull = require(`./${file}`);
// file is command files from fs.readdirSync() and it can be 'ping.js', 'eval.js', ...
...etc

但它會拋出一個找不到模塊的參考錯誤。 但是當我嘗試 fs.readFile() 時,它起作用了。 有什么問題?

如果沒有路徑或文件名上有相對路徑,則fs.readFile()默認為當前工作目錄。

require()有一套完全獨立的規則來查找文件。 例如,一個完全沒有路徑的文件名在node_modules目錄和全局模塊位置中查找。 ./開頭的文件名在當前模塊的主目錄中查找。 等等......這是一組與fs.readFile()不同的規則。

由於您沒有向我們展示實際是什么file ,因此很難准確知道,但也許您需要將文件名與適當的路徑組合起來,因此您為require()提供了一個完整的路徑名,它將 go 准確地存在,不使用當只給定一個普通文件名時,其中require()的正常規則。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM