最近,我开始使用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)
答案 0 :(得分:11)
尝试执行以下命令
删除node_modules
和package-lock.json
rm -rf node_modules package-lock.json
然后运行以下命令以安装依赖项
npm install
最后,通过以下命令运行软件包。
npm start
答案 1 :(得分:4)
node_modules
目录package-lock.json
文件npm install
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)
此错误消息很容易重现。
cmd
, Enter 。
在Linux上: Ctrl + Alt + t 。)npm
,然后按 Enter 来查看是否已安装Node.js。command not found
,请从https://nodejs.org/en/download/下载
并安装。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.js
,main.js
,start.js
,server.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