89

这是我的完整错误:

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?

谢谢

4

31 回答 31

162

几天前我遇到了同样的问题,但无法弄清楚。尚未设法正确解决问题,但这可以作为临时修复:

上一层(高于 app.js)并执行npm install ejs. 它将创建一个新的 node_modules 文件夹,然后 Express 应该会找到该模块。

于 2011-10-13T14:37:17.633 回答
23

在本地安装 express

npm install express在项目的根目录中)


您的项目同时依赖于expressejs,因此您应该在package.json.

这样,当您npm install在项目目录中运行时,它将同时安装expressand ejs,因此这var express = require('express')将是 express 的本地安装(它知道ejs您在本地安装的模块)而不是全局安装,后者不知道。

一般来说,明确列出您的所有依赖项是一个好主意,package.json即使其中一些可能已经全局安装,因此您不会遇到这些类型的问题。

于 2013-03-14T06:39:25.170 回答
10

我的情况是,我只是在package.json中手动添加了 ejs :

 {
   "name": "myApp"
   "dependencies": {
     "express": "^4.12.2",
     "ejs": "^1.0.0"
   }
 }

并运行npm install(可能你需要用sudo运行它)请注意,默认情况下 ejs 看起来是视图目录

于 2015-03-05T18:38:27.103 回答
9

我遇到过同样的问题。一旦我将环境变量 NODE_PATH 设置为我的模块的位置(在我的情况下是 /usr/local/node-v0.8.4/node_modules),问题就消失了。如果您需要指定多个目录,则 PS NODE_PATH 接受冒号分隔的目录列表。

于 2012-08-20T20:19:01.220 回答
8

当我遇到同样的问题时。

JSON文件中的ejs存在依赖关系,尝试在本地和全局安装它,但没有奏效。

然后我所做的是通过以下方式手动添加模块:

app.set('view engine','ejs'); 

app.engine('ejs', require('ejs').__express);

然后它工作。

于 2019-07-11T12:16:12.333 回答
5

我在 express 目录级别ejs使用命令安装npm install ejs,这解决了我的问题。

我已经使用快递指南http://expressjs.com/guide.html中提到的步骤安装快递

于 2014-01-17T11:33:31.987 回答
4

本地安装而不是全局安装。那么你的项目可以在任何机器上运行而没有任何错误。我认为它更好。

npm install express --save
npm install ejs --save
于 2017-10-15T16:22:56.250 回答
4

安装 Express V xxx 后,您需要选择一个模板视图引擎。有很多真的很容易学。我个人的首选是EJS

其他真正伟大且易于学习的可能是:

要安装 EJS(并修复您的错误)在项目的根目录中运行:

npm install ejs

或者,如果您使用 Yarn:

yarn add ejs

接下来你需要 require 模块,所以打开你需要 express 的文件(通常是 app.js 或 server.js)

在下面添加var express = require('express');

var ejs = require('ejs');
于 2018-08-17T09:03:19.187 回答
4

我有同样的问题。所以我做了以下事情,它对我有用。

解决方案:

  1. 如果尚未完成,请在项目目录中运行“npm init”。
  2. 安装ejs并表达如下:

npm install ejs --save
npm install express --save

通过这样做,它会在 package.json 文件中创建所需的依赖项

于 2020-07-08T19:33:26.503 回答
3

我有这个问题。我使用 node-inspector 进行调试,并从 express 源文件所在的 node_modules 文件夹中看到,没有安装 ejs。所以我在那里安装它并且它工作。

npm install -g ejs尽管 NODE_PATH 设置为相同的 node_modules 文件夹,但并没有把它放在我期望的位置。可能做错了,刚从节点开始。

于 2013-03-06T23:23:16.020 回答
3

我安装了两个:express 和 ejs,带有选项--save:

npm install ejs --save npm install express --save

这种方式 express 和 ejs 是依赖 package.json 文件。

于 2015-12-18T00:38:33.330 回答
3

重新安装 npm、express 和 ejs 解决了我的问题

这个对我有用,

  1. 在您的终端或 cmd -> 转到您的应用程序目录,
  2. cd pathtoyourapp/AppName
  3. 重新运行你的'npm install'
  4. 重新运行你的“npm install express”
  5. 重新运行你的“npm install ejs”

之后,错误得到修复。

于 2018-01-10T06:45:38.817 回答
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"                                                                          
  }                                                                                                    
}   

STEP 2 下载依赖

npm install

STEP 3 检查 ejs 模块

$ npm ls | grep ejs
musicpedia@0.0.0 /Users/prayagupd/nodejs-fkers/musicpedia
├── ejs@1.0.0
于 2016-10-13T04:52:03.783 回答
2

添加依赖package.json然后运行npm install

    {
  ...
  ... 
  "dependencies": {
    "express": "*",
    "ejs": "*",
  }
}
于 2018-06-12T11:34:34.840 回答
2

我认为你的机器上没有正确安装 ejs 模板引擎。您只需使用 npm 安装模板引擎

npm install ejs --save

然后在 app.js 中包含以下代码

app.set('view engine', 'ejs')
于 2018-06-28T13:32:50.267 回答
1

在我的项目目录中安装 express 后,我遇到了同样的问题。以前我使用 -g 选项和 npm install 命令在全局范围内安装它。

于 2015-06-07T14:47:44.730 回答
1

就我而言,这是一个愚蠢的错误——它是中间件中的一个错字。我写app.set('view engine', 'ejs.');的点导致了错误。我在本地安装了ejs和express

于 2016-09-09T11:51:09.427 回答
1

就我而言,没有愚蠢的语法错误,但出现了同样的错误。我已经在全球范围内安装了 ejs 和 ejs-mate。我在本地安装它并发现我的错误已解决。

于 2017-04-16T19:34:18.423 回答
1

请确保您的 package.json 文件中的依赖项是最新的。在确保您的 NPM 是最新版本(最新)之后,尝试一次重新安装它们。它对我有用。我建议您npm install为软件包运行(在我自己的情况下,由于我手动添加了依赖项而拒绝工作,这就是我自己的情况)。

于 2017-09-02T00:26:00.083 回答
1

确保已安装所有依赖项。npm install

我正在为自己制作一个快速应用程序,但我忘记添加 express。抛出上述错误。

于 2019-09-23T14:40:14.077 回答
1

我遇到了同样的 ejs 错误,然后我运行node install ejs 这将再次安装 ejs。

然后npm install再次运行以安装 node_modules。这对我有用。

于 2019-11-19T17:07:27.400 回答
1

在我第一次运行我的应用程序之前忘记安装 ejs 后,我遇到了这个问题。由于某种原因,以后安装后没有看到 ejs。我找到了一个快速、干净、有效的解决方案,即在重新启动服务器之前在本地目录中运行npm uninstall express然后重新安装 express。npm install express

于 2020-02-25T19:05:39.300 回答
1

npm i ejs --force

这对我有用

于 2020-07-09T23:07:57.717 回答
1

在本地安装 express 解决了我同样的问题。npm 我表达--保存

于 2020-08-17T15:07:47.547 回答
1

我有同样的问题并尝试了一些给定的解决方案,但它仍然没有用。我所做的就是在我的项目的根文件夹中运行“npx yarn”命令,就是这样。

于 2020-09-23T09:26:29.710 回答
0
app.set('view engine', 'ejs')

然后在终端

npm install ejs --save 

解决问题

于 2017-02-21T22:37:57.003 回答
0

就我而言,我只是卸载然后再次安装 ejs。

npm uninstall ejs

然后

npm install ejs
于 2020-03-29T09:17:53.037 回答
0

npm install ejs --save为我工作!✅</p>

在 goormIDE 上,我有这个文件配置:

  • 容器
    • main.js
    • 包-lock.json
    • 包.json
    • 节点模块
    • 意见
      • 主页.ejs

在我的 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",}

**

于 2020-04-11T09:36:54.697 回答
0

你必须有

const ejs = require('ejs')
app.set('view engine', 'ejs')
于 2021-05-27T03:17:31.170 回答
0

安装 node express 项目后,您需要为此安装 ejs 或 pug 包

要么你可以尝试使用节点

npm install ejs 
npm install pug

或者你可以试试纱线

yarn add ejs
yarn add pug

全球或本地

于 2021-09-06T15:36:07.377 回答
0

我遇到了同样的问题,我在答案和其他任何地方都尝试了每个命令,但没有任何效果。最终,我去了我的另一个项目,ejs从 复制文件夹node_modules,然后将其粘贴到我当前损坏的项目中,之后一切正常。

值得注意的是,我之前查看了我的文件夹,除了a ,node_modules/ejs等之外找不到任何文件,没有文件夹,或者任何文件并且正在运行,//没有任何修复它。package.jsonlicenselib.jsyarn installyarn remove ejsyarn add ejsyarn add ejs --save

于 2021-11-07T13:16:16.977 回答