Sha*_*oon 73 ejs node.js express
这是我的完整错误:
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)
Run Code Online (Sandbox Code Playgroud)
我的源代码也很简单:
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);
Run Code Online (Sandbox Code Playgroud)
在我的文件夹中,我在我使用的node_modules中安装了ejs npm install ejs.
所以我的问题是......是什么给出的?我做错了什么,以便当我清楚地安装它时节点找不到EJS?
谢谢
evi*_*ery 127
几天前我遇到了同样的问题而无法理解.没有设法正确解决问题,但这可以作为临时修复:
上升一级(高于app.js)然后做npm install ejs.它将创建一个新的node_modules文件夹,然后Express应该找到该模块.
Wil*_*ill 20
(npm install express在项目的根目录中)
你的项目依赖于两个express和ejs,所以你应该他们俩列为在你的依赖package.json.
当您运行的方式npm install在你的项目目录,它会同时安装express和ejs,这样var express = require('express')将是本地快递的安装(知道的ejs,你本地安装的模块),而不是全球性的,它没有.
一般来说,明确列出您的所有依赖项是个好主意,package.json即使其中一些可能已经全局安装,因此您没有这些类型的问题.
小智 8
我遇到过同样的问题.一旦我将环境变量NODE_PATH设置为我的模块的位置(在我的情况下为/usr/local/node-v0.8.4/node_modules),问题就消失了.如果需要指定多个目录,PS NODE_PATH接受以冒号分隔的目录列表.
我的情况,我只是在package.json中手动添加了ejs :
{
"name": "myApp"
"dependencies": {
"express": "^4.12.2",
"ejs": "^1.0.0"
}
}
Run Code Online (Sandbox Code Playgroud)
并运行npm install(可能需要使用sudo运行它)请注意,默认情况下,ejs会查看视图目录
小智 6
回到同样的问题发生在我身上的时候。
JSON 文件中的 ejs 存在依赖性,尝试在本地和全局安装它,但没有奏效。
然后我所做的是通过以下方式手动添加模块:
app.set('view engine','ejs');
app.engine('ejs', require('ejs').__express);
Run Code Online (Sandbox Code Playgroud)
然后它起作用了。
安装 Node Express 项目后,您需要安装 ejs 或 pug 包
你可以尝试使用节点
npm install ejs
npm install pug
Run Code Online (Sandbox Code Playgroud)
或者你可以尝试用纱线
yarn add ejs
yarn add pug
Run Code Online (Sandbox Code Playgroud)
全球或本地
我在 express 目录级别ejs使用命令npm install ejs进行安装,这解决了我的问题。
我已经使用快递指南http://expressjs.com/guide.html 中提到的步骤安装快递
安装 Express V xxx 后,您需要选择模板视图引擎。有很多确实很容易学习。我个人的首选是EJS。
其他真正伟大且易于学习的可能是:
要安装 EJS(并修复错误),请在项目的根目录中运行:
npm install ejs
Run Code Online (Sandbox Code Playgroud)
或者,如果您使用的是 Yarn:
yarn add ejs
Run Code Online (Sandbox Code Playgroud)
接下来,您需要 require 该模块,因此在需要 express 的位置打开文件(通常是 app.js 或 server.js)
添加如下var express = require('express');
var ejs = require('ejs');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
87673 次 |
| 最近记录: |