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

时间:2013-02-19 03:02:13

标签: node.js express

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

  

错误:找不到模块'express'

我正在使用 mac os 10.8.2 。我使用nvm安装了Node.js.

  

node.js:0.8.20节点路径:/Users/feelexit/nvm/v0.8.20/bin/node   表达的路径:/ 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

19 个答案:

答案 0 :(得分:123)

它说

 Cannot find module 'express'

您是否已快速安装?如果没有,请运行此。

 npm install express

再次运行你的程序。

答案 1 :(得分:38)

在终端中表达后,请执行

 npm install

安装所有依赖项。

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

答案 2 :(得分:31)

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

npm install express

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

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

答案 3 :(得分:11)

 npm install --save express   
  这对我有用,只需再次运行express.js安装

答案 4 :(得分:10)

从你的app目录中安装npm将解决问题,因为它将安装所需的一切

答案 5 :(得分:5)

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

来解决

答案 6 :(得分:3)

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

答案 7 :(得分:2)

如果您的主文件位于/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js,那么需要找到express 在/Users/feelexit/WebstormProjects/learnnode/node_modules/node_modules,因为节点总是在./node_modules(及其内部文件夹)中查找模块 当路径不以.//more info here

开头时

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

答案 8 :(得分:2)

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

答案 9 :(得分:2)

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

答案 10 :(得分:1)

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

  1. 删除 node_modules
  2. npm 安装

答案 11 :(得分:0)

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

答案 12 :(得分:0)

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

npm cache clean --force

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

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

答案 13 :(得分:0)

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

答案 14 :(得分: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 它解决了我。

答案 15 :(得分:0)

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

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

npm uninstall
npm install

我希望它有所帮助

答案 16 :(得分:0)

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

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

答案 17 :(得分:0)

您尝试过

npm install

如果您只是在寻找快递

npm install --save express

答案 18 :(得分:0)

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

这是因为在npm工作时缺少权限或未链接的文件。

意思是,执行npm,因为该用户没有足够的权限从文件读取/写入,在本例中为package.json。

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

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

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

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

希望这会有所帮助!!