内部/模块/cjs/loader.js:582抛出错误

ist*_*lon 17 routing node.js express

最近,我开始使用express学习Node.js。我试过快递路由器,它抛出了一个错误。更大的问题是造成此问题的原因以及如何再次避免它。这个问题使我感到担忧,并阻止了我学习node.js。

这是错误。我需要做什么?

internal/modules/cjs/loader.js:582
    throw err;
    ^

Error: Cannot find module 'C:\Users\User\Desktop\NodeJsProject\app.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:580:15)
    at Function.Module._load (internal/modules/cjs/loader.js:506:25)
    at Function.Module.runMain (internal/modules/cjs/loader.js:741:12)
    at startup (internal/bootstrap/node.js:285:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:739:3)
Run Code Online (Sandbox Code Playgroud)

小智 22

我第一次尝试 node js 时遇到了同样的问题。
我注意到这个问题发生在我身上,因为我在不同的目录中有一些同名的 .js 文件,它们在同一个主目录中。
我在主项目文件夹之外创建了另一个目录,并创建了一个 .js 文件。
之后,它运行良好。
前 app.js

  • 我不明白你的意思 (103认同)

Ter*_*nal 17

  1. 删除node_modules目录
  2. 删除package-lock.json档案
  3. npm install
  4. npm start

要么

rm -rf node_modules package-lock.json && npm install && npm start
Run Code Online (Sandbox Code Playgroud)

  • 我承认这个答案得到了很多人的支持。然而,我强烈建议对这里给出的建议保持谨慎。caseyjustus、ttfreeman、Bishwajit Vikram、Muhammad Tahir、Andrew Koper 的答案都有一个共同点,即当在_一个实际上不存在的文件上调用 `node` 时,问题中的错误就会出现_。(!) -- 重新安装 `Node .js` 只能作为最后的手段——当其他一切都失败时。首先阅读[此答案](/sf/ask/3748206031/#62740853),您可能会省去一些麻烦。 (9认同)

Moh*_*hod 14

尝试以下命令

删除node_modulespackage-lock.json

rm -rf node_modules package-lock.json
Run Code Online (Sandbox Code Playgroud)

然后运行以下命令安装依赖项

npm install
Run Code Online (Sandbox Code Playgroud)

最后,通过以下命令运行你的包。

npm start
Run Code Online (Sandbox Code Playgroud)


Hen*_*nke 8

1. 阅读错误信息!

\n

阅读错误消息。\n第二部分的第一行显示:

\n
Error: Cannot find module \'C:\\Users\\User\\Desktop\\NodeJsProject\\app.js\'\n
Run Code Online (Sandbox Code Playgroud)\n

所以首先要检查的是:该文件是否存在?

\n

在 Windows 上,打开命令提示符\n(WinKey+ r,键入cmd,按Enter)。跑步 :

\n
dir C:\\Users\\User\\Desktop\\NodeJsProject\\app.js\n
Run Code Online (Sandbox Code Playgroud)\n

如果响应为\xe2\x80\x93系统找不到指定的路径。\n\xe2\x80\x93\xe2\x80\x93文件未找到\xe2\x80\x93\n那么你就知道该文件不存在

\n
\n

同样,在 Linux/Unix 上(在我的例子中是 Windows 上的 MSYS2),运行

\n
$ ls "C:\\Users\\User\\Desktop\\NodeJsProject\\app.js"\nls: cannot access \'C:\\Users\\User\\Desktop\\NodeJsProject\\app.js\': No such file or directory\n
Run Code Online (Sandbox Code Playgroud)\n

因此,如果在 Linux 上您得到No such file or directory,那么您就知道该文件不存在

\n

2.尝试跑步npm install

\n

如果上面的第 1 部分没有解决您的问题,请尝试运行\n npm install,然后运行npm start​​。

\n

3.最后的手段:尝试这个答案

\n

如果以上都没有解决您的问题,我的最后一个建议是:

\n
    \n
  1. 删除node_modules目录,
  2. \n
  3. 删除package-lock.json文件,
  4. \n
  5. 跑步npm install
  6. \n
  7. 跑步npm start
  8. \n
\n

4. 如果错误发生在VS Code中

\n

注意: \n在Visual Studio Code
中调试\n时,可能会无明显原因地发生错误。\n如果您在 VS Code 中遇到错误,请查看此答案是否有帮助。

\n

5. 如何重现错误

\n

想必您已经在计算机上安装了 Node.js。
\n如果没有,请下载并安装。

\n

该错误消息很容易重现。\n安装 Node.js 后,打开命令行,然后运行:

\n
$ node thisFileDoesNotExist.js\nnode:internal/modules/cjs/loader:1078\n  throw err;\n  ^\n\nError: Cannot find module \'C:\\thisFileDoesNotExist.js\'\n[90m    at Module._resolveFilename (node:internal/modules/cjs/loader:1075:15)[39m\n[90m    at Module._load (node:internal/modules/cjs/loader:920:27)[39m\n[90m    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)[39m\n[90m    at node:internal/main/run_main_module:23:47[39m {\n  code: [32m\'MODULE_NOT_FOUND\'[39m,\n  requireStack: []\n}\n\nNode.js v18.14.2\n
Run Code Online (Sandbox Code Playgroud)\n

6.如何运行node <someFile.js> 报错

\n

要在终端中运行 Node.js而不会出现错误,\在 Windows 命令行中,运行:

\n
echo console.log(\'\\nHello world!\')> hello.js\nnode hello.js\n
Run Code Online (Sandbox Code Playgroud)\n

在 Linux 终端中,尝试:

\n
echo "console.log(\'\\nHello world\\!\\n\')"> hello.js\nnode hello.js\n
Run Code Online (Sandbox Code Playgroud)\n

在这两种情况下,预期响应为:

\n
Hello world!\n
Run Code Online (Sandbox Code Playgroud)\n

如果您删除hello.js,然后运行node hello.js​​,您应该会再次收到您询问的错误。

\n

参考

\n\n


Hap*_*s31 6

帮助我的是将.js我正在处理的文件放在一个新文件夹中,将该文件夹拖放到 VS Code 中(直接在 VS Code 中打开目录),在 VS Code 中打开终端,然后只需键入node <filename>.js(或在我的情况下node index.js)。

我已经安装node在我的系统上,但无论出于何种原因,我仍然收到您提到的错误,即使我输入了文件 ie 的直接路径node /desktop/index.js

因此,在我的桌面上创建一个新文件夹,将.js文件放在该文件夹中,在 VS Code 中打开该文件夹,然后node index.js在终端中输入解决了我的问题。


小智 6

我遇到了同样的错误,因为我的文件名末尾有一个空格(不是引用而是实际文件名)。一旦我将“app.js”更改为“app.js”,它就可以正常工作。


小智 6

对于那些正在使用 的用户,这是由您的设置中的选项TypeScript引起的。incrementalcompilerOptions

这会导致构建tsconfig.tsbuildinfo存储所有缓存数据的文件。如果删除该文件并重新编译项目,它应该可以立即运行。


小智 5

在替换您的文件名package.json{"npm": <your server code file name>.js}在您的服务器代码运行与该文件)(它应该是app.jsmain.jsstart.jsserver.js,或你拿起)。


Muh*_*hir 5

特定的 .js 文件位于应用程序的子文件夹 (/src) 中,终端位于通用 App 文件夹中。(其中包含所有包文件、模块、公共文件夹、src 文件夹)它抛出了该错误。转到 (/ src) 的应用程序解决了我的问题。


小智 5

通过 docker 运行 nodemon 时遇到了类似的问题,

值得检查一下 package.json 中的“主”文件是否配置为指向正确的入口点

在 package.json 中

"main": "server.js",
"scripts": {
    "start":"nodemon src/server.js",
    "docker:build": "docker build -f ./docker/Dockerfile . "
  },
Run Code Online (Sandbox Code Playgroud)