我是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
答案 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)
安装节点模块时有时会出错 试试这个:
答案 11 :(得分:0)
在源代码nodejs文件所在的同一目录中运行npm install express body-parser cookie-parser multer --save
命令以解决此问题。
P / s:运行命令后检查你的目录以了解更多信息!
答案 12 :(得分:0)
在极少数情况下,npm缓存可能会损坏。对我来说,有用的是:
npm cache clean --force
通常,程序包管理器会自行检测损坏并重新获取,因此通常不需要这样做。但是,在我的情况下,Windows 10崩溃了几次,我怀疑这可能是在获取操作期间。希望它可以帮助别人!
答案 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
模块,而不必提供模块的完整路径在使用中。
希望这会有所帮助!!