错误:找不到模块'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


你的项目依赖于expressejs ,所以你应该在package.json列出它们的依赖关系。

这样,当你在项目目录下运行npm install时,它会同时安装expressejs ,这样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 (多数民众赞成在我自己的情况下工作,因为我拒绝工作,因为我手动添加了依赖项)。