it-swarm.com.de

Fehler: Modul 'EJS' kann nicht gefunden werden

Hier ist mein vollständiger Fehler:

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)

Mein Quellcode ist auch sehr einfach:

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);

In meinem Ordner habe ich ejs in node_modules installiert, die ich mit npm install ejs..__ bekam.enter image description here also meine frage ist .. was gibt das? Was mache ich falsch, damit der Knoten EJS nicht finden kann, wenn ich ihn eindeutig installiert habe?

Vielen Dank

65
Shamoon

Ich hatte vor ein paar Tagen das gleiche Problem und konnte es nicht herausfinden. Es ist nicht möglich, das Problem richtig zu beheben, dies funktioniert jedoch als temporäre Lösung:

Geh eine Ebene höher (über app.js) und npm install ejs. Es wird ein neuer node_modules-Ordner erstellt und Express sollte das Modul dann finden.

107
evilcelery

Installieren Sie Express lokal

(npm install express im Stammverzeichnis des Projekts)


Ihr Projekt ist von express und ejs abhängig. Daher sollten Sie beide als Abhängigkeiten in Ihrem package.json angeben. 

Wenn Sie npm install in Ihrem Projektverzeichnis ausführen, werden sowohl express als auch ejs installiert, sodass var express = require('express') die local - Installation von express (die über das lokal installierte ejs-Modul informiert ist) und nicht das globale Modul ist eine, die nicht geht.

Im Allgemeinen ist es eine gute Idee, alle Abhängigkeiten in Ihrem package.json explizit aufzulisten, auch wenn einige davon möglicherweise bereits global installiert sind, so dass Sie diese Probleme nicht haben.

18
Will

Ich hatte das gleiche Problem. Sobald ich die Umgebungsvariable NODE_PATH auf die Position meiner Module (in meinem Fall /usr/local/node-v0.8.4/node_modules) festgelegt habe, ist das Problem behoben. P.S. NODE_PATH akzeptiert eine durch Doppelpunkte getrennte Liste von Verzeichnissen, wenn Sie mehrere angeben müssen.

8
Pete

In meinem Fall habe ich EJS manuell hinzugefügt package.json:

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

Und Renn npm installieren (Vielleicht müssen Sie es mit ausführen Sudo) Bitte beachten Sie, dass ejs standardmäßig das Verzeichnis "views" sieht

6
levon

Ich habe ejs mit dem Befehl npm install ejs in der Express-Verzeichnisebene installiert und damit mein Problem gelöst.

ich habe Express-Schritte installiert, die in dem Express-Handbuch http://expressjs.com/guide.html erwähnt sind. _

4
Ramesh Kotkar

Ich habe beides installiert: express und ejs mit der Option --save:

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

Auf diese Weise sind express und ejs die abhängecies package.json-Datei.

3
colo

Installieren Sie es lokal und nicht global. Dann kann Ihr Projekt auf jedem Rechner fehlerfrei ausgeführt werden. Ich denke, es ist besser.

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

Ich hatte dieses Problem. Ich habe mit dem Knoteninspektor debuggt und sah, dass ejs aus dem Ordner node_modules, in dem sich die Quelldateien befanden, nicht installiert war. Also habe ich es dort installiert und es hat funktioniert.

npm install -g ejs hat es nicht an die Stelle gebracht, wo ich es erwartet hatte, obwohl NODE_PATH auf den gleichen node_modules-Ordner gesetzt ist. Probier es falsch, ich habe gerade mit dem Knoten angefangen.

2
Typo Johnson

Fügen Sie in package.json eine Abhängigkeit hinzu und führen Sie dann npm install aus.

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

Durch die Neuinstallation von npm, express und ejs wurde mein Problem behoben

Dieser arbeitete für mich,

  1. Auf Ihrem Terminal oder cmd -> Gehen Sie zu Ihrem Apps-Verzeichnis,
  2. cd pathtoyourapp/AppName
  3. führen Sie Ihre 'npm-Installation' erneut aus
  4. führen Sie Ihren 'npm install express' erneut aus.
  5. führen Sie Ihre 'npm install ejs' erneut aus

danach wurde der Fehler behoben.

2
apelidoko

Ich denke, dass EJS Template Engine auf Ihrem Rechner nicht richtig installiert ist. Sie installieren die Template Engine einfach mit npm

npm install ejs --save

fügen Sie dann den folgenden Code in app.js ein

app.set('view engine', 'ejs')
2
Codemaker

SCHRITT 1

Unter npm ls | grep ejs auf Stammebene Ihres Projekts können Sie überprüfen, ob Sie ejsdependency bereits zu Ihrem Projekt hinzugefügt haben.

Falls nicht, fügen Sie es als dependencies zu Ihrem Projekt hinzu. (Ich ziehe es vor, Abhängigkeiten zu package.json anstelle von npm installing dem Modul hinzuzufügen.)

z.B.

{                                                                                                      
  "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"                                                                          
  }                                                                                                    
}   

SCHRITT 2 Download der Abhängigkeiten

npm install

STEP 3 EJS-Modul prüfen

$ npm ls | grep ejs
[email protected] /Users/prayagupd/nodejs-fkers/musicpedia
├── [email protected]
2
prayagupd

Vor langer Zeit, als das gleiche Problem bei mir passierte.

Dependency war für ejs in der JSON-Datei vorhanden, hat versucht, sie lokal und global zu installieren, hat aber nicht funktioniert.

Dann habe ich das Modul manuell hinzugefügt:

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

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

Dann klappt es.

1
Kael

In meinem Fall gab es keinen dummen Syntaxfehler, aber der gleiche Fehler trat auf. Ich hatte EJS und EJS-Mate global installiert. Ich habe es lokal installiert und meinen Fehler behoben.

1

Ich habe das gleiche Problem, das nach der Installation des Express in meinem Projektverzeichnis behoben wurde. zuvor installiere ich es im globalen Bereich mit der Option -g mit dem Befehl npm install.

1
Mohit

In meinem Fall war es ein dummer Fehler - es war ein Tippfehler in der Middleware. Ich schrieb app.set('view engine', 'ejs.');, dass der Punkt den Fehler verursacht hat. Ich habe EJS und Express lokal installiert

0

stellen Sie bitte sicher, dass Ihre Abhängigkeiten in Ihren package.json-Dateien auf dem neuesten Stand sind. Installieren Sie sie nacheinander erneut. Stellen Sie außerdem sicher, dass Ihr NPM die neueste Version ist (aktuell). Es hat für mich funktioniert. Ich empfehle Ihnen, npm install für die Pakete auszuführen (das hat in meinem eigenen Fall funktioniert, nachdem er die Arbeit abgelehnt hat, weil ich die Abhängigkeiten manuell hinzugefügt habe).

0
douglas egiemeh
app.set('view engine', 'ejs')

und dann im Terminal

npm install ejs --save 

behebt das Problem

0
Homam Bahrani

Nachdem Sie Express V x.x.x installiert haben, müssen Sie eine Vorlagen-Ansichts-Engine auswählen. Es gibt viele wirklich einfach zu lernen. Mein persönliches Ziel ist EJS

Andere wirklich gute und leicht zu erlernen könnte sein:

So installieren Sie EJS (und beheben Sie den Fehler) Führen Sie das Stammverzeichnis Ihres Projekts aus:

npm install ejs

Oder wenn Sie Garn verwenden:

yarn add ejs

Als Nächstes benötigen Sie das Modul. Öffnen Sie Ihre Datei dort, wo Sie express benötigen (normalerweise app.js oder server.js).

unten hinzufügen var express = require('express');

var ejs = require('ejs');
0
Timm Jensen