node.js, 错误。无法找到模块'Express&#39。

我是Node.js的新手,试图学习Express来构建我的第一个网络应用。我被卡在了我的第一个示例代码上,需要一些帮助才能让它运行。 在我发布这个问题之前,我在 stack overflow 上做了搜索,发现了一些类似的问题,但还是无法解决。

错误。无法找到模块'express&#39。

我使用的是mac os 10.8.2。 我使用nvm安装了Node.js。

node.js: 0.8.20 path to node: /Users/feelexit/nvm/v0.8.20/bin/node 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

它说

 Cannot find module 'express'

你有安装Express吗?如果没有,请运行这个。

 npm install express

并再次运行你的程序。

评论(5)

你的 express 模块位于与你的项目不同的目录下。这可能是问题所在,因为你正试图在本地require()它。试着把Express模块从/Users/feelexit/nvm/node_modules/express移到/Users/feelexit/WebstormProjects/learnnode/node_modules/express。此信息可以给你提供关于node_modules文件结构的更多细节。

评论(0)

如果你的主文件位于/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js,那么Express需要位于 /Users/feelexit/WebstormProjects/learnnode/node_modules/node_modules,因为node总是在./node_modules(及其内部文件夹)寻找模块。 当路径不以.//开头时(更多信息)。

我认为你没有把你的主文件放在模块文件夹中。

评论(0)