2012-07-29 7 views
5

Ich war sehr frustriert mit der "Let's build twitter" Knoten App in Kapitel 2 im O'Reilly Buch "Node.js Up And Running".EJS-Fehler: nicht definiert; Modul nicht gefunden 'undefiniert'; nicht finden können ‚ejs‘ Modul; Körper ist nicht definiert

Ich habe noch nie EJS verwendet und weiß nicht einmal, welche Erweiterung für EJS-Dateien verwendet werden soll. Außerdem kann ich nicht meinen App bekommen arbeiten, um diese verschiedenen Fehlermeldungen erhalten:

  • Teil definiert nicht
  • nicht Modul 'undefined' gefunden, wo app.render tun ('index' ...
  • Can not finden Modul ‚ejs‘
  • Körper nicht
  • definiert

es ist noch frustrierend, da es nur die Kapitel 2 und ich frage mich, wenn es nicht auf ein anderes Material zu wechseln wäre vorzuziehen ...

+0

wäre unmöglich für jemand anderen zu beantworten, da Sie keine Informationen zur Verfügung stellen ...:/ – Esailija

+0

Ich versuche nur, für Leute wie mich hilfreich zu sein, die ** derzeit lesen ** das Buch und können ' t ihre App funktioniert. – Tinou

Antwort

10

Wenn auch Sie mit dem Lernprogramm "Let's build twitter" im Kapitel 2 des O'Reilly Up and running book frustriert sind, hier ist die Ergänzung, um diese "App" zum Laufen zu bringen.

Voraussetzungen:

  1. für diese App zu umgehen, stellen Sie sicher, dass Sie eine Version von Express < 3.X haben Tatsächlich haben sie in der Version 3.0 und höher die "teilweise" Unterstützung entfernt und sind nun Template-spezifisch. So stellen Sie sicher, eine Version 2.x zu installieren, indem Sie so vorgehen: npm install [email protected]
  2. Das Buch liefert keine Informationen darüber, wie EJS-Dateien zu verwenden. Nach ein wenig Forschung, um Express EJS-Datei zu verstehen und zu parsen, müssen Sie ... ejs installieren. Die Installation ist ziemlich einfach wie jedes andere Modul: npm install ejs.

Das Fleisch:

  1. Für diese App, werden alle Dateien im Ordner views und partials sollte die Erweiterung .ejs
  2. Sie EJS installiert, aber Sie haben ausdrücklich zu sagen, EJS zu verwenden, wie das Template-Format in der app.render() Funktion Sie zwei Möglichkeiten, es zu tun haben:

(1) Sie setzen EJS als Standard-Template-Engine und die n nur sagen, drücken Sie Ihre Datei app.set('view engine', 'ejs');

zu machen

res.render('index', ...)

(2) Sie sagen, nur auf die app.render() Funktion EJS zu verwenden, zum Ausdruck kümmern sie

res.render('index.ejs', ...)

Wenn bei An diesem Punkt funktioniert es nicht oder es ist immer noch nicht klar, nichts ist besser, als sich den Arbeitscode anzusehen. Fork oder laden Sie die App here.

Ich hoffe, es hilft anderen Lesern.

+0

Haben ejs keine Teilunterstützung entfernt? Ich erinnere mich, dass ich in der Google-Gruppe gefragt habe und sie sagten, dass sie es getan hätten. – lostAstronaut

+0

Nun, ich benutze Express 2.5.11 und ejs 0.8.0, um sicher zu sein, die * gleiche * Version wie im Buch zu verwenden. Aber in Express 3.x gibt es keine Unterstützung für Teiltöne. – Tinou

+0

Lenker unterstützt Partials mit Express3. Ich benutze es gerade jetzt. – lostAstronaut

0

O'Reilly Buch Node.js Up and Running - Teil 1 => Kapitel 2 Doing Interessante Dinge => Lassen Sie uns beim Aufbau Twitter (Arbeitscode für Express 3.0 und ejs embedd Ed-JavaScript für Knoten-Renderer ohne Partials) Download-Quelle: https://github.com/thinkphp/express-tweets

-1

Ich habe Express @ 4 und behobenes Problem installiert. Wenn wir einen Code außerhalb des Editors schreiben, wird dieser Fehler angezeigt.

Grüße, Ningappa

1

installieren express @ 4 im aktuellen Projektverzeichnis, es ist mein Problem gelöst!