错误:找不到模块'ejs'

时间:2011-10-13 13:24:59

标签: node.js express 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 ejsenter image description here所以我的问题是......给出了什么?我做错了什么,以便当我清楚地安装它时节点找不到EJS?

由于

28 个答案:

答案 0 :(得分:117)

几天前我遇到了同样的问题而无法理解。没有设法正确解决问题,但这可以作为临时修复:

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

答案 1 :(得分:18)

本地安装快递

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


您的项目取决于expressejs,因此您应将它们列为package.json中的依赖项。

这样,当您在项目目录中运行npm install时,它会同时安装expressejs,以便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,这解决了我的问题。

我使用快速指南http://expressjs.com/guide.html

中提到的步骤安装快递

答案 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解决了我的问题

这个对我有用,

  1. 在您的终端或cmd上 - &gt;转到您的应用目录,
  2. cd pathtoyourapp / AppName
  3. 重新运行'npm install'
  4. 重新运行'npm install express'
  5. 重新运行'npm install ejs'
  6. 之后,错误被修复了。

答案 8 :(得分:2)

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

    {
  ...
  ... 
  "dependencies": {
    "express": "*",
    "ejs": "*",
  }
}

答案 9 :(得分:2)

我有同样的问题。所以我做了以下工作,对我有用。

解决方案:

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

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
    • package-lock.json
    • package.json
    • node_modules
    • 意见
      • home.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",}

**

答案 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的地方。