node.js,错误:找不到模块'express'

我是node.js的新手,尝试学习快速构build我的第一个Web应用程序。 被困在我的第一个示例代码。 需要一些帮助才能运行。 在我发布这个问题之前,我没有search堆栈溢出,发现了一些类似的问题,但仍然无法解决它。

错误:找不到模块'express'

我使用的是Mac OS 10.8.2。 我使用nvm安装了node.js。

node.js:0.8.20到node的path:/Users/feelexit/nvm/v0.8.20/bin/nodepath来表示:/ 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$ 

更新回答hovy的问题:

 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 

它说

  Cannot find module 'express' 

你有快速安装?如果没有,然后运行这个。

  npm install express 

再次运行你的程序。

当你在terminal上expression出来之后,

  npm install 

要安装所有的依赖关系。

然后你可以做节点应用程序来运行服务器。

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

 npm install express 

如果您的node_modules目录位于其他位置,请设置NODE_PATH环境variables:

 set NODE_PATH=your\directory\to\node_modules;%NODE_PATH% 

npm从您的应用程序目录安装将解决这个问题,因为它会安装所需的一切

在这里挖掘一个旧的线程,但我有这个相同的错误,我通过导航到我的NodeApp驻留在目录解决和运行npm install -d

您的快速模块位于与您的项目不同的目录中。 这可能是你试图在本地require()问题。 尝试将您的Express模块​​从/ Users / feelexit / nvm / node_modules / express移动/ Users / feelexit / WebstormProjects / learnnode / node_modules / express 。 这个信息可以给你更多关于node_module文件结构的细节。

如果您的主文件位于/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js则表示需要位于/Users/feelexit/WebstormProjects/learnnode/node_modules/node_modules因为节点始终在./node_modules查找模块(及其内部文件夹),当path不以.// ( 更多信息在这里 )

我想你错过了你的主要文件在模块文件夹

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

除非你设置了Node_PATH ,否则唯一的select就是在app目录下npm install express --save ,比如npm install express --save 。 Express可能已经安装,但node由于某种原因找不到它

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

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

这意味着,执行npm作为这个用户没有足够的权限来读/写文件,在这种情况下package.json。

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

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

密码将是您的Mac的pipe理员密码。

-g标志将把这个模块(express)安装在节点的全局上下文中 – 意味着节点将/应该从任何js文件中识别express模块,而不必提供正在使用的模块的完整path。

希望这可以帮助!!

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

 cd /Users/feelexit/WebstormProjects/learnnode/node_modules/ 

我猜这是Colt Steele的Web开发课程的课程…我正在寻找同样的答案,为什么我也结束了这个错误..小马不这样说,但你采取node_module文件夹和移动进入你正在工作的新文件夹…这就是为我工作。

在源代码nodejs文件的相同目录下运行npm install express body-parser cookie-parser multer --save命令来解决这个问题。 P / s:运行命令后检查你的目录了解更多!

在极less数情况下,npmcaching可能会损坏。 对我来说,有效的是:

 npm cache clean --force 

一般来说,软件包pipe理器将自己检测到损坏并重新提取,所以这通常是不必要的。 但是,在我的情况下,Windows 10崩溃了几次,我怀疑这可能是在一个获取操作。 希望它可以帮助别人!

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