我是Node.js的新手,尝试学习express来构建我的第一个Web应用程序 . 我遇到了我的第一个示例代码,需要一些帮助才能使其运行 . 在我发布这个问题之前,我确实搜索了堆栈溢出,发现了一些类似的问题,但仍然无法修复它 .
错误:找不到模块'快递'
我正在使用 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$
Update to answer chovy's question:
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
17 回答
在这里挖掘一个旧线程,但我有同样的错误,我通过导航到我的NodeApp所在的目录并运行
npm install -d
解决了从你的app目录中安装npm将解决问题,因为它将安装所需的一切
它说
你有快速安装吗?如果没有,那么运行它 .
并再次运行您的程序 .
在您的终端表达后,然后做
安装所有依赖项 .
然后,您可以执行节点应用程序来运行服务器 .
检查您是否安装了
express
模块 . 如果没有,请使用此命令:如果你的
node_modules
目录在另一个地方,请设置NODE_PATH
envirnment变量:您的快速模块位于与项目不同的目录中 . 这可能是问题,因为你在本地尝试
require()
. 尝试将您的快速模块从/ Users / feelexit / nvm / node_modules / express移至/ Users / feelexit / WebstormProjects / learnnode / node_modules / express . This info可以为您提供有关node_module文件结构的更多详细信息 .这对我有用,只需再次运行express.js安装
如果您的主文件位于
/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js
,则表示需要位于/Users/feelexit/WebstormProjects/learnnode/node_modules/node_modules
,因为当路径不以./
或/
(more info here)开头时,节点始终在./node_modules
(及其内部文件夹)中查找模块我想你错过了把你的主文件放在模块文件夹中
对于此方案,请使用cmd提示符运行npm install express命令,以查找要运行程序的相应文件夹 . 示例我想在F:\ nodeSample中运行快速模块程序server.js . 因此,在该特定文件夹中运行“npm install express”,然后运行server.js
除非你设置 Node_PATH ,否则唯一的另一个选择是在app目录中安装express,比如
npm install express --save
. 可能已经安装了Express但node
由于某种原因找不到它npm ERR! Error: ENOENT, open '/Users/feelexit/package.json'
这是因为在npm工作时缺少权限或未链接的文件 .
这意味着执行
npm
,因为此用户没有足够的权限从文件读取/写入,在本例中为package.json .尝试在整个命令之前添加
sudo
- 它应该解决 .$ sudo npm install -g express
$ Password:*******
密码将是您的mac的管理员密码 .
-g
flag将在节点的全局上下文中安装此模块(express) - 意味着节点将/应该从任何js文件中识别express
模块,而不必提供正在使用的模块的完整路径 .希望这可以帮助!!
我有同样的问题 . 我的问题是我必须在安装express之前更改到命令行上的Node.js项目目录 .
我猜这是Colt Steele的Web开发课程的课程...我一直在寻找同样的答案,为什么我也得到了这个错误.Colt没有这么说但你拿了node_module文件夹并移动进入你正在工作的新文件夹...这对我有用 .
在源代码nodejs文件所在的同一目录中运行
npm install express body-parser cookie-parser multer --save
命令以解决此问题 . P / s:运行命令后检查你的目录,了解更多!在极少数情况下,npm缓存可能会损坏 . 对我来说,有用的是:
通常,程序包管理器会自行检测损坏和重新获取,因此通常不需要这样做 . 但是,在我的情况下,Windows 10崩溃了几次,我怀疑这可能是在获取操作期间 . 希望它可以帮到某人!
更多信息:https://docs.npmjs.com/cli/cache
有时版本与package.json不匹配通过检查package.json修复了问题,然后使用以下命令:npm install body-parser@1.13.2它为我解决了 .
我遇到了类似的问题,最后是一些旧的依赖项问题弄乱了我的Heroku服务器 .
在我的项目文件夹中,我运行:
我希望它有所帮助