下面是我的完整错误:
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);
在我的文件夹中,我使用npm install ejs
获得的node_modules中安装了ejs。
所以我的问题是..怎么回事?我做错了什么,当我清楚地安装了EJS的时候,node却找不到它?
谢谢
发布于 2011-10-13 22:37:18
几天前,我遇到了完全相同的问题,但无法解决。我没有成功地解决这个问题,但这只是一个临时的修复:
上一级(在app.js之上)并执行npm install ejs
。它将创建一个新的node_modules文件夹,然后Express应该会找到该模块。
发布于 2012-08-21 04:19:01
我也有同样的问题。一旦我将环境变量NODE_PATH设置为我的模块的位置(在我的例子中是/usr/local/node-v0.8.4/node_ modules ),问题就解决了。如果需要指定多个目录,P.S. NODE_PATH接受冒号分隔的目录列表。
发布于 2019-07-11 20:16:12
很久以前,同样的问题也发生在我身上。
在JSON文件中存在对ejs的依赖项,尝试在本地和全局安装它,但不起作用。
然后我所做的就是手动添加模块:
app.set('view engine','ejs');
app.engine('ejs', require('ejs').__express);
然后它就起作用了。
https://stackoverflow.com/questions/7754799
复制相似问题