错误:找不到模块'ejs'
这是我完整的错误:
Error: Cannot find module 'ejs' at Function._resolveFilename (module.js:317:11) at Function._load (module.js:262:25) at require (module.js:346:19) at View.templateEngine (/Users/shamoon/local/node/lib/node_modules/express/lib/view/view.js:133:38) at Function.compile (/Users/shamoon/local/node/lib/node_modules/express/lib/view.js:65:17) at ServerResponse._render (/Users/shamoon/local/node/lib/node_modules/express/lib/view.js:414:18) at ServerResponse.render (/Users/shamoon/local/node/lib/node_modules/express/lib/view.js:315:17) at /Users/shamoon/Sites/soldhere.in/app.js:26:7 at callbacks (/Users/shamoon/local/node/lib/node_modules/express/lib/router/index.js:272:11) at param (/Users/shamoon/local/node/lib/node_modules/express/lib/router/index.js:246:11)
我的源代码也很简单:
var express = require('express'); var app = module.exports = express.createServer(); // Configuration app.configure(function(){ app.use(express.bodyParser()); app.use(app.router); app.use(express.static(__dirname + '/public')); }); app.set('view engine', 'ejs'); app.set('view options', { layout: false }); app.get('/', function(req, res) { res.render('index', { message : 'De groeten' }); }); app.listen(3000); console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
在我的文件夹中,我有安装在node_modules中的ejs,我使用npm install ejs
。 所以我的问题是..什么给了? 我做错了什么,所以当我清楚安装时节点找不到EJS?
谢谢
前几天我也遇到了同样的问题,无法弄清楚。 没有设法妥善解决这个问题,但这是一个临时性的修复:
去上一级(上面的app.js)和做npm install ejs
。 它将创build一个新的node_modules文件夹,然后Express应该find该模块。
在本地安装快递
(在项目的根目录下, npm install express
)
你的项目依赖于express
和ejs
,所以你应该在package.json
列出它们的依赖关系。
这样,当你在项目目录下运行npm install
时,它会同时安装express
和ejs
,这样var express = require('express')
将是express的本地安装(它知道你在本地安装的ejs
模块)而不是全球性的,而不是。
一般来说,明确列出package.json
中的所有依赖关系是一个好主意,即使其中的一些依赖关系可能已经全局安装了,所以你没有这些types的问题。
我遇到过同样的问题。 一旦我设置环境variablesNODE_PATH到我的模块的位置(/usr/local/node-v0.8.4/node_modules在我的情况),问题就消失了。 如果您需要指定多个目录,则PS NODE_PATH接受以冒号分隔的目录列表。
我使用命令npm install ejs
在express目录级别npm install ejs
,这解决了我的问题。
我已经安装快递使用快递指南http://expressjs.com/guide.html中提到的步骤;
我的情况,我只是在package.json手动添加ejs:
{ "name": "myApp" "dependencies": { "express": "^4.12.2", "ejs": "^1.0.0" } }
并运行npm install (可能需要使用sudo运行)请注意,ejs默认查看views目录
我同时安装了express和ejs两个选项–save:
npm install ejs –save npm install express –save
这种expression和ejs是依赖package.json文件。
我有这个问题。 我使用node-inspector进行了debugging,发现源文件所在的node_modules文件夹中没有安装ejs。 所以我安装在那里,它的工作。
尽pipeNODE_PATH被设置为相同的node_modules文件夹, npm install -g ejs
并没有把它放在我所期望的位置。 Prob做错了,刚刚开始与节点。
步骤1
见npm ls | grep ejs
npm ls | grep ejs
在你的项目的根级别检查你是否已经添加了ejs
dependency
到你的项目中。
如果不是,请将其作为dependencies
项添加到您的项目中。 (我宁愿添加依赖package.json
而不是npm install
模块。)
例如。
{ "name": "musicpedia", "version": "0.0.0", "private": true, "scripts": { "start": "node ./bin/www" }, "dependencies": { "body-parser": "~1.15.1", "cookie-parser": "~1.4.3", "debug": "~2.2.0", "express": "~4.13.4", "jade": "~1.11.0", "ejs": "^1.0.0", "morgan": "~1.7.0", "serve-favicon": "~2.3.0" } }
第2步下载依赖关系
npm install
第3步检查ejs模块
$ npm ls | grep ejs musicpedia@0.0.0 /Users/prayagupd/nodejs-fkers/musicpedia ├── ejs@1.0.0
在我的项目目录中安装express后,我遇到了同样的问题。 以前我使用npm install命令将其安装在全局范围内,使用-g选项。
在我的情况下,没有愚蠢的语法错误,但同样的错误出现。 我已经在全球安装了ejs和ejs-mate。 我在本地安装它,发现我的错误已解决。
在本地安装,而不是全局安装。 那么你的项目可以在任何机器上运行,没有任何错误。我认为它更好。
npm install express --save npm install ejs --save
我有同样的问题。 在我的情况下,这是一个愚蠢的错误 – 这是中间件的一个错字。 我写了app.set('view engine', 'ejs.');
点造成了错误。 我安装了ejs并在本地表示
app.set('view engine', 'ejs')
然后在terminal
npm install ejs --save
解决了这个问题
请确保您的package.json文件中的依赖项是最新的。 在确保您的NPM是最新版本(最新)之后,尝试重新安装一个。 它为我工作。 我build议你运行软件包的npm install
(多数民众赞成在我自己的情况下工作,因为我拒绝工作,因为我手动添加了依赖项)。