这是我的完整错误:
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?
由于
答案 0 :(得分:117)
几天前我遇到了同样的问题而无法理解。没有设法正确解决问题,但这可以作为临时修复:
上升一级(高于app.js)并执行npm install ejs
。它将创建一个新的node_modules文件夹,Express应该找到该模块。
答案 1 :(得分:18)
(npm install express
在项目的根目录中)
您的项目取决于express
和ejs
,因此您应将它们列为package.json
中的依赖项。
这样,当您在项目目录中运行npm install
时,它会同时安装express
和ejs
,以便var express = require('express')
成为本地< / strong>安装express(它知道你本地安装的ejs
模块)而不是全局安装(不知道。
一般来说,明确列出package.json
中的所有依赖项是个好主意,即使其中一些可能已经全局安装,因此您没有这些类型的问题。
答案 2 :(得分:8)
我有同样的问题。一旦我将环境变量NODE_PATH设置为我的模块的位置(在我的情况下为/usr/local/node-v0.8.4/node_modules),问题就消失了。附:如果需要指定多个目录,NODE_PATH接受以冒号分隔的目录列表。
答案 3 :(得分:6)
我的情况,我只是在 package.json 中手动添加了ejs:
{
"name": "myApp"
"dependencies": {
"express": "^4.12.2",
"ejs": "^1.0.0"
}
}
运行 npm install (可能需要使用 sudo 运行它) 请注意,默认情况下,ejs会查看目录
答案 4 :(得分:4)
我在快速目录级别使用命令ejs
安装了npm install ejs
,这解决了我的问题。
答案 5 :(得分:4)
在本地安装,而不是全局安装。然后你的项目可以在任何机器上运行而没有任何错误。我认为它更好。
npm install express --save
npm install ejs --save
答案 6 :(得分:3)
我安装了:express和ejs选项--save:
npm install ejs --save npm install express --save
这样express和ejs是dependecies package.json文件。
答案 7 :(得分:3)
重新安装npm,express和ejs解决了我的问题
这个对我有用,
之后,错误被修复了。
答案 8 :(得分:2)
在package.json
中添加依赖项,然后运行npm install
{
...
...
"dependencies": {
"express": "*",
"ejs": "*",
}
}
答案 9 :(得分:2)
我有同样的问题。所以我做了以下工作,对我有用。
解决方案:
npm install ejs --save
npm install express --save
这样做会在package.json文件中创建所需的依赖项
答案 10 :(得分:2)
安装Express V x.x.x之后 您需要选择一个模板视图引擎。有很多真的很容易学习。我个人的关注对象是EJS。
其他真正好又易学的可能是:
要安装EJS(并修复错误) 在项目的根目录下运行:
npm install ejs
或者,如果您使用的是纱线:
yarn add ejs
接下来,您需要使用该模块,因此请在需要表达的地方打开文件(通常是app.js或server.js)
添加到var express = require('express');
下
var ejs = require('ejs');
答案 11 :(得分:2)
我认为ejs模板引擎未正确安装在您的计算机上。 您只需使用npm安装模板引擎
npm install ejs --save
然后在app.js中包含以下代码
app.set('view engine', 'ejs')
答案 12 :(得分:2)
第1步
在项目的根级别查看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
答案 13 :(得分:2)
我有这个问题。我使用node-inspector进行了调试,并从明确源文件所在的node_modules文件夹中看到了,未安装ejs。所以我在那里安装它并且有效。
尽管NODE_PATH被设置为相同的node_modules文件夹,但 npm install -g ejs
并未将其置于我预期的位置。 Prob做错了,只是从节点开始。
答案 14 :(得分:1)
请确保package.json文件中的依赖项是最新的。在确保您的NPM是最新版本(最新)之后,请尝试一次重新安装它们。它对我有用。我建议你为这些软件包运行npm install
(这是因为我手动添加了依赖项,因此在我拒绝工作之后在我自己的情况下有效。)
答案 15 :(得分:1)
在我的情况下,没有愚蠢的语法错误,但出现了同样的错误。 我在全球安装了ejs和ejs-mate。我在本地安装它,发现我的错误已解决。
答案 16 :(得分:1)
在我的情况下,这是一个愚蠢的错误 - 这是中间件中的一个错字。我写了app.set('view engine', 'ejs.');
点造成了错误。我安装了ejs并在本地表达
答案 17 :(得分:1)
我在项目目录中安装express后遇到了同样的问题。以前我使用-g选项和npm install命令在全局范围内安装它。
答案 18 :(得分:1)
回头,当我遇到相同的问题时。
JSON文件中的ejs存在依赖关系,尝试在本地和全局安装它,但不起作用。
然后我所做的是通过以下方式手动添加模块:
app.set('view engine','ejs');
app.engine('ejs', require('ejs').__express);
然后它起作用。
答案 19 :(得分:1)
确保已安装所有依赖项。 npm install
我当时为自己制作了一个快速应用程序,却忘记了添加快递。抛出了以上错误。
答案 20 :(得分:1)
在我第一次运行我的应用程序之前忘记安装ejs之后,我遇到了这个问题。由于某种原因,以后安装ejs后未看到。我找到了解决此问题的快速,干净且有效的解决方案,该方法是在重新启动服务器之前先在本地目录中运行npm uninstall express
然后运行npm install express
来重新安装express。
答案 21 :(得分:0)
我在使用ejs时遇到同样的错误,然后我只运行node install ejs
这将再次安装ejs。
,然后再次运行npm install
以再次安装node_modules。
那对我有用。
答案 22 :(得分:0)
就我而言,我只是卸载然后重新安装ejs。
npm uninstall ejs
然后
npm install ejs
答案 23 :(得分:0)
npm install ejs --save
为我工作! ✅
在goormIDE上,我具有以下文件配置:
在我的main.js文件中,我也有这条路线
app.get("/", function(req, res){
res.render("home.ejs");
})
npm install ejs -g
未在package.json中添加相应的依赖项。
npm install ejs --save
做到了。我从容器目录执行了命令行。可以手动将其添加到package.json中,方法如下:
**
"dependencies": {
"ejs": "^3.0.2",}
**
答案 24 :(得分:0)
npm i ejs --force
这对我有用
答案 25 :(得分:0)
我遇到了同样的问题,并尝试了一些给定的解决方案,但仍然无法正常工作。我要做的就是在项目的根文件夹中运行“ npx yarn”命令。
答案 26 :(得分:0)
你必须有
const ejs = require('ejs')
app.set('view engine', 'ejs')
答案 27 :(得分:-1)
当我使用goormIDE时,该错误使我震惊。当节点在运行文件中打包arent时,基本上会发生这种情况。执行app.js或home.js的地方。