160

我是 Node.js 的新手,尝试学习 express 来构建我的第一个 Web 应用程序。我被困在我的第一个示例代码上,需要一些帮助才能让它运行。在我发布这个问题之前,我确实搜索了堆栈溢出,发现了一些类似的问题但仍然无法解决它。

Error: Cannot find module 'express'

我正在使用mac os 10.8.2。我使用nvm.

node.js: 0.8.20 path to node:    /Users/feelexit/nvm/v0.8.20/bin/node
path to express: /Users/feelexit/nvm/node_modules/express

这是我的示例代码:此文件位于:

/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js

var express = require('express');
var app = express();
app.get('/', function(req, res){
    res.send('welcome to express');
});
app.listen(3000);

当我尝试运行此命令时,node index.js我收到以下错误消息,请帮助我修复它。

谢谢你。

Error: Cannot find module 'express'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)
    at Object.<anonymous> (/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js:1:81)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.runMain (module.js:492:10)
feelexits-Mac:node_modules feelexit$ 

更新以回答 chovy 的问题:

feelexits-Mac:~ feelexit$ npm install
npm ERR! install Couldn't read dependencies
npm ERR! Error: ENOENT, open '/Users/feelexit/package.json'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Darwin 12.2.0
npm ERR! command "/Users/feelexit/nvm/v0.8.20/bin/node" "/Users/feelexit/nvm/v0.8.20/bin/npm" "install"
npm ERR! cwd /Users/feelexit
npm ERR! node -v v0.8.20
npm ERR! npm -v 1.2.11
npm ERR! path /Users/feelexit/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/feelexit/npm-debug.log
npm ERR! not ok code 0
4

20 回答 20

214

它说

Cannot find module 'express'

你有安装快递吗?如果没有,那么运行它。

npm install express

并再次运行您的程序。

于 2013-07-18T11:03:33.207 回答
49

在您的终端中表达后,然后执行

npm install

安装所有依赖项。

然后你可以做 node app 来运行服务器。

于 2013-11-01T18:03:29.000 回答
39

检查您是否安装了express模块。如果没有,请使用以下命令:

npm install express

如果您的node_modules目录在另一个地方,请设置NODE_PATH环境变量:

set NODE_PATH=your\directory\to\node_modules;%NODE_PATH%
于 2013-11-22T10:23:09.877 回答
36
npm install --save express

这对我有用。只需再次运行 express.js 安装。

于 2018-05-08T14:55:18.050 回答
13

从您的应用程序目录中安装 npm install 将解决问题,因为它将安装所需的所有内容

于 2013-11-30T20:19:43.333 回答
6

除非您设置Node_PATH,否则唯一的其他选择是在 app 目录中安装 express,例如npm install express --save. Express 可能已经安装,但node由于某种原因找不到它

于 2017-11-07T21:56:36.847 回答
5

在这里挖掘一个旧线程但我遇到了同样的错误,我通过导航到我的 NodeApp 所在的目录并运行来解决npm install -d

于 2013-11-23T02:20:29.990 回答
3

如果您的主文件位于/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js然后 express 需要位于,因为当路径不以或(更多信息here)开始时/Users/feelexit/WebstormProjects/learnnode/node_modules/node_modules,节点总是在./node_modules(及其内部文件夹)中查找模块.//

我想你错过了将你的主文件放在模块文件夹中

于 2013-07-18T11:13:32.447 回答
3

您的 express 模块位于与项目不同的目录中。require()这可能是问题所在,因为您正在本地尝试它。尝试将您的 express 模块从/Users/feelexit/nvm/node_modules/express移动到/Users/feelexit/WebstormProjects/learnnode/node_modules/express此信息可以为您提供有关 node_module 文件结构的更多详细信息。

于 2013-02-19T13:06:18.933 回答
3

对于这种情况,使用您的 cmd 提示符运行 npm install express 命令,以找到您要运行该程序的相应文件夹。示例 我想在 F:\nodeSample 中运行 express 模块程序 server.js。因此,在该特定文件夹中运行“npm install express”,然后运行 ​​server.js

于 2016-08-26T00:11:38.280 回答
2

安装节点模块时有时会出错试试这个:

  1. 删除 node_modules
  2. npm 安装
于 2021-01-19T21:20:21.427 回答
1

在极少数情况下,npm 缓存可能会损坏。对我来说,有效的是:

npm cache clean --force

通常,包管理器会自行检测损坏并重新获取,因此通常不需要这样做。但是,在我的情况下,Windows 10 崩溃了几次,我怀疑这可能是在获取操作期间。希望它可以帮助某人!

更多信息:https ://docs.npmjs.com/cli/cache

于 2017-10-25T14:15:15.093 回答
1

在与源代码 nodejs 文件相同的目录中运行npm install express body-parser cookie-parser multer --save命令以解决此问题。P / s:运行命令后检查您的目录以了解更多信息!

于 2016-08-22T15:48:31.157 回答
0

我有同样的问题。我的问题是在安装 express 之前,我必须在命令行上更改为 Node.js 项目目录。

cd /Users/feelexit/WebstormProjects/learnnode/node_modules/
于 2015-02-24T02:05:07.500 回答
0

npm ERR! Error: ENOENT, open '/Users/feelexit/package.json'

发生这种情况是由于 npm 工作时缺少权限或未链接的文件。

这意味着,npm以该用户身份执行没有足够的权限从文件读取/写入,在本例中为 package.json。

尝试sudo在整个命令之前添加 - 它应该可以解决。

$ sudo npm install -g express
$ Password:*******

密码将是您的 mac 的管理员密码。

-gflag 将在 node 的全局上下文中安装这个模块(express)——这意味着 node 将/应该express从任何 js 文件中识别模块,而不必提供正在使用的模块的完整路径。

希望这可以帮助!!

于 2014-11-08T11:38:33.340 回答
0

你有没有尝试过

npm install

如果您专门寻找快递

npm install --save express
于 2020-05-10T17:00:19.473 回答
0
D:\learn\Node.js\node app.js
module.js:549
    throw err;
    ^

Error: Cannot find module 'body-parser'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)

有时版本与 package.json 不匹配通过检查 package.json 来解决问题,然后使用以下命令: npm install body-parser@1.13.2 它为我解决了。

于 2018-04-17T10:05:00.580 回答
0

我遇到了一个类似的问题,最后是一些旧的依赖关系弄乱了我的 Heroku 服务器。

在我的项目文件夹中,我运行了:

npm uninstall
npm install

我希望它有帮助

于 2018-04-17T16:24:24.290 回答
0

我猜这是 Colt Steele 的 Web 开发课程的课程作业......我一直在寻找同样的答案,为什么我也会遇到这个错误...... Colt 没有这么说,但你拿了 node_module 文件夹并移动进入你正在工作的新文件夹......这对我有用。

于 2016-07-25T00:26:14.570 回答
0

在我的情况下,我试图运行与您相同的方式,但使用的是 nodemon。错误是一样的,但问题是因为在我的 package.json 我添加了 app.js 而不仅仅是 app

“脚本”:{“开发”:“nodemon 应用程序”}

于 2021-10-31T02:43:38.373 回答