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

时间:2018-11-29 18:56:16

标签: node.js express routing

最近,我开始使用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)

33 个答案:

答案 0 :(得分:11)

尝试执行以下命令

删除node_modulespackage-lock.json

rm -rf node_modules package-lock.json

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

npm install

最后,通过以下命令运行软件包。

npm start

答案 1 :(得分:4)

  1. 删除node_modules目录
  2. 删除package-lock.json文件
  3. 运行npm install
  4. 运行npm start

答案 2 :(得分:3)

您可能没有从正确的目录运行终端命令。

例如,如果您创建了一个新文件夹,请考虑导航到该文件夹​​,然后从那里运行命令。

答案 3 :(得分:3)

确保在运行app.js时为node <path>/app.js提供正确的地址路径。找不到

Error: Cannot find module 'C:\Users\User\Desktop\NodeJsProject\app.js'

答案 4 :(得分:2)

当我使用以下命令时,我也遇到了相同的错误:

node .function-hello.js

我将命令更改为以下命令,效果很好:

node .\function-hello.js

答案 5 :(得分:2)

您要执行的js文件的路径错误;您必须输入要相对于root所在节点的根目录执行的路径和文件名,但您输入的不是它所在的根目录。

我键入了node redux-basics.js,得到了一个稍微令人误解的错误消息,即Stack Overflow,然后查看了我的文件系统,我应该键入了node src/redux-basics.js

答案 6 :(得分:2)

您需要使用以下命令启动服务器

npm start

yarn start

答案 7 :(得分:2)

对我来说,在命令提示符下再次执行“ npm install”。命令提示符必须为“以管理员身份运行”

答案 8 :(得分:2)

Hashan Gunathilaka是正确的。这种奇怪的行为存在。 我只是删除了重复项,并关闭了命令提示符以在Windows中再次打开。工作正常。

答案 9 :(得分:1)

在主目录中而不是在诸如public或src之类的子文件夹中创建.js文件。

答案 10 :(得分:1)

对我来说,我刚刚安装了该软件包并且它起作用了:

yarn add cjs-loader --save

npm i cjs-loader --save

但请注意,有时问题不仅在于缺少此库,还在于您的应用程序文件 app.js 的路径可能不在此文件夹中:

C:\Users\User\Desktop\NodeJsProject\

答案 11 :(得分:1)

我在使用 nestjs 处理打字稿时遇到了同样的问题。 在第一次尝试在 VS Code 中运行调试之后,无论出于何种原因(使用 launch.json - 顺便说一句,这不起作用。)

对我有用的是: 删除 dist 文件夹(从 .ts 文件中生成 .js 文件的文件夹,通常在 tsconfig.json 中指定该文件夹的路径)。

简单的解决方案,但有效:)

答案 12 :(得分:1)

只需输入“node NodeJsProject/app.js

你的程序会运行:)

答案 13 :(得分:1)

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

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

在 package.json 中

"main": "server.js",
"scripts": {
    "start":"nodemon src/server.js",
    "docker:build": "docker build -f ./docker/Dockerfile . "
  },

答案 14 :(得分:1)

对于使用TypeScript的用户来说,这是由您的设置incremental中的compilerOptions选项引起的。

这将导致生成tsconfig.tsbuildinfo文件,该文件存储所有数据以供缓存。如果您删除该文件并重新编译该项目,则该文件应立即运行。

答案 15 :(得分:1)

Caseyjustus的评论帮助了我。 显然我的要求路径中有空格。

const listingController = require("../controllers/ listingController");

我将代码更改为

const listingController = require("../controllers/listingController");

一切都很好。

答案 16 :(得分:1)

此错误消息很容易重现。

  • 打开一个终端窗口。
    (在Windows上: WinKey cmd Enter 。 在Linux上: Ctrl + Alt + t 。)
  • 键入npm,然后按 Enter 来查看是否已安装Node.js。
  • 如果您获得command not found,请从https://nodejs.org/en/download/下载 并安装。
    (在Linux / Ubuntu上,如果愿意,可以使用sudo apt install nodejs。)
  • 键入(或粘贴)node thisFileDoesNotExist.js(并按 Enter )。

在Windows上,希望看到类似以下内容的东西:

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

Error: Cannot find module [... + a few more lines]

在Linux(Ubuntu 18.04)上:

module.js:549
  throw err;
  ^

Error: Cannot find module [...]

我还没有尝试过macOS,但是在那里也会期望有类似的东西。

注意:调试时可能没有明显的原因发生这种情况 在Visual Studio代码中。
如果您在VScode中收到错误,请查看答案是否 HappyHands31 有什么帮助。


最后,要在终端中运行Node.js,而不会出现错误, 在Windows终端(命令行)中尝试:

echo console.log('\nHello world!')> hello.js
node hello.js

在Linux终端中尝试:

echo "console.log('\nHello world\!\n')"> hello.js
node hello.js

当然,希望看到终端响应:

Hello world!

答案 17 :(得分:1)

对我来说,我尝试使用的Node包只能在旧版本的Node上工作。

我能够通过使用Homebrew来安装较旧版本的Node来对其进行修复:

brew unlink node
brew install node@12
echo 'export PATH="/usr/local/opt/node@12/bin:$PATH"' >> ~/.zshrc

在上述命令中,您将需要编辑Node版本,然后导出PATH命令。<​​/ p>

答案 18 :(得分:1)

用运行服务器代码的文件替换package.json{"npm": <your server code file name>.js})中的文件名(应为app.jsmain.jsstart.jsserver.js或您捡到的任何东西。

答案 19 :(得分:1)

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

答案 20 :(得分:1)

当我第一次尝试节点js时,我遇到了同样的问题。
我注意到此问题正在发生,因为我在不同的目录中有一些具有相同名称的.js文件,这些文件位于同一主目录中。
我在主项目文件夹之外创建了另一个目录,并创建了一个.js文件。
之后,就可以了。
前app.js

答案 21 :(得分:1)

我更改了项目文件夹的名称,并且该文件夹已成功运行,我不知道为什么:)

答案 22 :(得分:1)

我遇到了同样的错误:

return()

我遵循了这里的所有建议,但没有一个为我工作。 我发现我将server.js移到了他自己的文件夹server / server.js中,但是在package.json中,我忘了对此进行更改:

render()

对此:

 nodemon -w server.js server.js

[nodemon] 2.0.2
[nodemon] reading config .\nodemon.json
[nodemon] to restart at any time, enter `rs`
[nodemon] or send SIGHUP to 19248 to restart
[nodemon] ignoring: .\node_modules/**/* .\.next/**/*
[nodemon] watching dir(s): server.js
[nodemon] watching extensions: js,json
[nodemon] starting `node server.js index.js`
[nodemon] forking
[nodemon] child pid: 18840
[nodemon] watching 30 files
internal/modules/cjs/loader.js:797
    throw err;
    ^

Error: Cannot find module 'D:\Programming\01a.nextjs\project\index.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:794:15)
    at Function.Module._load (internal/modules/cjs/loader.js:687:27)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10)
    at internal/main/run_main_module.js:17:11 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}
[nodemon] app crashed - waiting for file changes before starting...

进行此更改并使用 "dev": "nodemon -w server.js server.js", "build": "next build", "start": "NODE_ENV=production node server.js" 重新启动服务器后,一切正常。

答案 23 :(得分:1)

我也发生了同样的事情,我只是通过删除“ dist”文件并重新运行该应用程序来解决该问题。

答案 24 :(得分:1)

昨晚我发生了一些奇怪的事情。 我运行的是命令node run watch而不是npm run watch。 我尝试在此线程上进行所有操作,但没有任何结果适合我。我很沮丧,但最终发现我执行了错误的命令。我在大声笑。有时候这件事发生了。不过,喜欢学习Nodejs。

答案 25 :(得分:1)

我使用

卸载了puppeteer, mocha and chai
npm uninstall puppeteer mocha chai
从命令行

然后重新安装 使用

npm install puppeteer mocha chai

错误消息根本就没有出现

答案 26 :(得分:1)

以下命令为我解决了这个问题。

npm install node-gyp -g
npm install bcrypt -g

npm install bcrypt -save

答案 27 :(得分:0)

i在应用程序的子文件夹中,并且抛出该错误。转到应用程序的主目录解决了我的问题。

答案 28 :(得分:0)

在对cjs-loader执行sudo npm后,它终于对我有用(并确保安装express,而不仅仅是express-http-proxy)

答案 29 :(得分:0)

这可能是特定于我的情况-但是帮助我的是将正在使用的.js文件放在一个新文件夹中,将该文件夹拖放到VS Code中(直接在其中打开目录VS Code),在VS Code中打开终端,然后只需键入node <filename>.js(在我的情况下为node index.js)。

我已经在系统上安装了node,但是无论出于什么原因,即使我键入文件的直接路径,即node /desktop/index.js,我仍然遇到您提到的错误。

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

答案 30 :(得分:0)

转到您的 package.json 文件并检查这一行:

"main": "main.js

" 括号中提供的文件必须与您要运行的文件完全一致

node main.js

这解决了我的问题

答案 31 :(得分:0)

如果您正在使用 node/express,请考虑在您的终端中运行它

npm i cjs-loader

答案 32 :(得分:0)

我不小心把一个文件移到了 /src 之外,这改变了结果 /build 目录的结构,所以现在在 package.json ... "dev:serve": "nodemon --inspect=4899 build/index.js", 不存在...它现在在 build/src /index.js