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 verwendet habe npm install ejs
.
also meine frage ist .. was gibt? Was mache ich falsch, damit der Knoten EJS nicht findet, wenn ich es eindeutig installiert habe?
Vielen Dank
Antworten:
Ich hatte vor ein paar Tagen genau das gleiche Problem und konnte es nicht herausfinden. Es ist nicht gelungen, das Problem ordnungsgemäß zu beheben, dies funktioniert jedoch als vorübergehende Lösung:
Gehen Sie eine Ebene höher (über app.js) und tun Sie es
npm install ejs
. Es wird ein neuer Ordner node_modules erstellt, und Express sollte das Modul dann finden.quelle
npm install ejs -g
könnte eine sauberere Problemumgehung sein. (-g
für globale Installation)ejs
in hinzuzufügenpackages.json
. Jetzt funktioniert es einwandfrei (npm install
wurde beim nächsten Neustart automatisch durchgeführt).node_module
global installieren möchten , ich habe das gleiche zuvor getan und es wird ein Schmerz, wenn SieInstallieren Sie Express lokal
(
npm install express
im Stammverzeichnis des Projekts)Ihr Projekt hängt von beiden
express
und abejs
, daher sollten Sie beide als Abhängigkeiten in Ihrem Projekt auflistenpackage.json
.Auf diese Weise werden beim Ausführen
npm install
in Ihrem Projektverzeichnis beideexpress
und installiertejs
, sodassvar express = require('express')
die lokale Installation von Express (die über dieejs
lokal installierte Modul ) und nicht die globale Installation installiert, bei der dies nicht der Fall ist.Im Allgemeinen ist es eine gute Idee, alle Abhängigkeiten in Ihrem explizit aufzulisten
package.json
, obwohl einige davon möglicherweise bereits global installiert sind, sodass Sie diese Art von Problemen nicht haben.quelle
Ich hatte das gleiche Problem. Nachdem ich die Umgebungsvariable NODE_PATH auf den Speicherort meiner Module gesetzt hatte (in meinem Fall /usr/local/node-v0.8.4/node_modules), war das Problem behoben. PS NODE_PATH akzeptiert eine durch Doppelpunkte getrennte Liste von Verzeichnissen, wenn Sie mehr als eines angeben müssen.
quelle
export NODE_PATH=.
funktionierte ein einfaches für mein Projekt, das seine Abhängigkeiten in einem eigenen Verzeichnis hat. ProstIn meinem Fall habe ich ejs gerade manuell in package.json hinzugefügt :
{ "name": "myApp" "dependencies": { "express": "^4.12.2", "ejs": "^1.0.0" } }
Führen Sie npm install aus (möglicherweise müssen Sie es mit sudo ausführen ). Bitte beachten Sie, dass ejs standardmäßig das Ansichtsverzeichnis sieht
quelle
Vor langer Zeit, als das gleiche Problem bei mir auftrat.
Die Abhängigkeit 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, indem ich:
app.set('view engine','ejs'); app.engine('ejs', require('ejs').__express);
Dann funktioniert es.
quelle
Ich habe
ejs
mit Befehl installiertnpm install ejs
in Express-Verzeichnis-Ebene und dies hat mein Problem gelöst.Ich habe Express mit den im Express-Handbuch http://expressjs.com/guide.html genannten Schritten installiert
quelle
Installieren Sie es lokal und nicht global. Dann kann Ihr Projekt auf jedem Computer ohne Fehler ausgeführt werden. Ich denke, es ist besser.
quelle
Ich hatte dieses Problem. Ich habe mit Node-Inspector debuggt und festgestellt, dass aus dem Ordner node_modules, in dem sich die Express-Quelldateien befanden, ejs nicht installiert war. Also habe ich es dort installiert und es hat funktioniert.
npm install -g ejs
Ich habe es nicht dort platziert, wo ich es erwartet hatte, obwohl NODE_PATH auf denselben Ordner node_modules gesetzt war. Prob mache es falsch, habe gerade mit Node angefangen.quelle
Ich habe sowohl: express als auch ejs mit der Option --save:
npm install ejs --save npm install express --save
Auf diese Weise sind Express und EJs Abhängigkeiten der Datei package.json.
quelle
Die Neuinstallation von npm, express und ejs hat mein Problem behoben
Dieser hat für mich gearbeitet,
Danach wurde der Fehler behoben.
quelle
Nachdem Sie Express V xxx installiert haben, müssen Sie eine Vorlagen-View-Engine auswählen. Es gibt viele wirklich leicht zu lernen. Mein persönlicher Ansprechpartner ist EJS .
Andere wirklich großartige und leicht zu erlernende könnten sein:
So installieren Sie EJS (und beheben Ihren Fehler) Führen Sie es im Stammverzeichnis Ihres Projekts aus:
Oder wenn Sie Garn verwenden:
Als nächstes müssen Sie das Modul benötigen, öffnen Sie also 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');
quelle
SCHRITT 1
Siehe
npm ls | grep ejs
auf Root - Ebene Ihres Projekts zu überprüfen , ob Sie bereits hinzugefügt haben ,ejs
dependency
um Ihr Projekt.Wenn nicht, fügen Sie
dependencies
es Ihrem Projekt hinzu. (Ich ziehe es vor, Abhängigkeiten hinzuzufügen,package.json
anstattnpm install
das Modul zu verwenden.)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 Laden Sie die Abhängigkeiten herunter
SCHRITT 3 Überprüfen Sie das EJS-Modul
$ npm ls | grep ejs musicpedia@0.0.0 /Users/prayagupd/nodejs-fkers/musicpedia ├── ejs@1.0.0
quelle
npm install
dass es nach dem Hinzufügen nicht funktioniert hat"ejs": "^1.0.0"
? Wenn ja, entfernen Sie diese Zeile und installieren Sie sie auf andere Weise alsnpm install ejs
- npmjs.com/package/ejs . Es sollte einejs: latest version
zu package.json hinzufügenFügen Sie die Abhängigkeit hinzu
package.json
und führen Sie sie ausnpm install
{ ... ... "dependencies": { "express": "*", "ejs": "*", } }
quelle
Ich denke, ejs Template Engine ist nicht richtig auf Ihrem Computer installiert. Sie installieren die Template-Engine einfach mit npm
Fügen Sie dann den folgenden Code in app.js ein
app.set('view engine', 'ejs')
quelle
Ich hatte das gleiche Problem. Also habe ich folgendes gemacht und es hat bei mir funktioniert.
Lösung:
npm install ejs --save
npm install express --save
Auf diese Weise werden die erforderlichen Abhängigkeiten in der Datei package.json erstellt
quelle
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.
quelle
In meinem Fall gab es keinen dummen Syntaxfehler, aber der gleiche Fehler trat auf. Ich hatte ejs und ejs-mate weltweit installiert. Ich habe es lokal installiert und festgestellt, dass mein Fehler behoben ist.
quelle
Stellen Sie bitte sicher, dass Ihre Abhängigkeiten in Ihren package.json-Dateien auf dem neuesten Stand sind. Versuchen Sie, sie einzeln neu zu installieren, nachdem Sie auch sichergestellt haben, dass Ihr NPM die neueste Version ist (aktuell). Es hat bei mir funktioniert. Ich
npm install
rate Ihnen, für die Pakete zu laufen (das hat in meinem Fall funktioniert, nachdem es sich geweigert hat zu funktionieren, weil ich die Abhängigkeiten manuell hinzugefügt habe).quelle
In meinem Fall war es ein dummer Fehler - es war ein Tippfehler in der Middleware. Ich habe
app.set('view engine', 'ejs.');
den Punkt geschrieben, der den Fehler verursacht hat. Ich habe ejs und express lokal installiertquelle
Stellen Sie sicher, dass alle Abhängigkeiten installiert sind.
npm install
Ich machte eine schnelle App für mich und hatte vergessen, Express hinzuzufügen. Warf den obigen Fehler.
quelle
Ich habe den gleichen Fehler für ejs, dann starte ich einfach.
node install ejs
Dadurch werden ejs erneut installiert.und dann auch ausführen
npm install
, um node_modules erneut zu installieren. Das ist Arbeit für mich.quelle
Ich bin auf dieses Problem gestoßen, nachdem ich vergessen hatte, ejs zu installieren, bevor ich meine App zum ersten Mal ausgeführt habe. Aus irgendeinem Grund wurde ejs nach der späteren Installation nicht mehr gesehen. Ich fand eine schnelle, saubere und effektive Lösung für dieses Problem , das durch Ausführen von Express neu zu installieren war
npm uninstall express
dannnpm install express
im lokalen Verzeichnis vor dem Neustart des Servers.quelle
app.set('view engine', 'ejs')
und dann im Terminal
behebt das Problem
quelle
In meinem Fall deinstalliere ich einfach ejs und installiere es erneut.
dann
quelle
npm install ejs --save
hat für mich gearbeitet! ✅Auf goormIDE hatte ich folgende Dateikonfiguration:
In meiner Datei main.js hatte ich auch diese Route
app.get("/", function(req, res){ res.render("home.ejs"); })
npm install ejs -g
hat die entsprechende Abhängigkeit nicht in package.json hinzugefügt.npm install ejs --save
tat. Ich habe die Befehlszeile aus dem Containerverzeichnis ausgeführt. Manuell hätte es der package.json hinzugefügt werden können mit: **"dependencies": { "ejs": "^3.0.2",}
** **.
quelle
das hat bei mir funktioniert
quelle
Die lokale Installation von Express löste mein Problem. npm ich drücke aus - speichern
quelle
Ich hatte das gleiche Problem und versuchte einige der gegebenen Lösungen, aber es funktionierte immer noch nicht. Alles, was ich getan habe, war, den Befehl "npx yarn" im Stammordner meines Projekts auszuführen, und das war es.
quelle
Der Fehler traf mich, als ich an goormIDE arbeitete. Dies geschieht im Wesentlichen, wenn Knotenpakete nicht in der laufenden Datei enthalten sind. Der Ort, an dem app.js oder home.js ausgeführt wird.
quelle