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

qin*_*126 106 node.js express

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

错误:找不到模块'express'

我使用的是mac os 10.8.2.我一直在使用Node.js的安装nvm.

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);
Run Code Online (Sandbox Code Playgroud)

当我尝试运行此命令时 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$ 
Run Code Online (Sandbox Code Playgroud)

更新回答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
Run Code Online (Sandbox Code Playgroud)

Sau*_*ana 135

它说

 Cannot find module 'express'
Run Code Online (Sandbox Code Playgroud)

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

 npm install express
Run Code Online (Sandbox Code Playgroud)

并再次运行您的程序.

  • 这并不能解决我的问题。`npm installexpress` 显示此错误`npm ERR! 错误:未知,符号链接“../express/bin/express”。看来是更深层次的问题了。 (2认同)

Bil*_*ill 39

在您的终端表达后,然后做

 npm install
Run Code Online (Sandbox Code Playgroud)

安装所有依赖项.

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

  • 你应该指出这需要一个包列表文件,即.json ..并非总是如此. (6认同)

Rez*_*imi 32

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

npm install express
Run Code Online (Sandbox Code Playgroud)

如果您的node_modules目录位于其他地方,请设置NODE_PATHenvirnment变量:

set NODE_PATH=your\directory\to\node_modules;%NODE_PATH%
Run Code Online (Sandbox Code Playgroud)

  • **这个**是正确的答案,每个人发布这些`CTRL + C/CTRL + V``npm install`答案:你真的认为有人会尝试运行一些东西而不检查它是否先安装?认真... (12认同)
  • 只需添加一个小细节:您需要在应用程序的目录中运行install express命令,而不是在Node.js安装文件夹中运行****或在AppData中运行npm-folder.因为这是我犯的错误,因为我认为它是某种SDK附加组件. (2认同)

小智 18

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


小智 10

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


She*_*mbe 6

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


Wjd*_*is5 5

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


Def*_*ult 3

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