express+jade: sofern lokale variable ist nicht definiert in der Ansicht (node.js + express + jade)
Ich bin Implementierung einer webapp verwenden node.js und express, mit dem jade-template-engine.
Vorlagen Rendern in Ordnung, und kann der Zugang von Helfern und dynamische Helfer, aber keine lokalen Variablen anderer als der "Körper" lokale variable, die zur Verfügung gestellt von express und verfügbar ist und definiert, die in meinem layout.jade.
Ist das der code:
app.set ('view engine', 'jade');
app.get ("/test", function (req, res) {
res.render ('test', {
locals: { name: "jake" }
});
});
und dieser test ist.jade:
p hello
=name
wenn ich entfernen Sie die zweite Zeile (mit verweisen auf Namen), die Vorlage rendert korrekt, zeigt das Wort "Hallo" in die web-Seite. Wenn ich den =Namen, er wirft einen ReferenceError:
500 ReferenceError: Jade:2 NaN. 'p hello' NaN. '=name' name is not defined
NaN. 'p hello'
NaN. '=name'
Ich glaube, ich bin nach der jade und express-Beispiele genau gegenüber lokalen Variablen. Mache ich etwas falsch, oder könnte das ein bug im express oder jade?
Dank -, dass es behoben. Während der installation einige Verwirrung landete ich mit einer veralteten express-Verzeichnis unter ~/.node_libraries. Es zu löschen und ausführen von "npm install express" zu installieren, die neuesten das problem behoben.
Wie auf StackOverflow, was soll ich tun? Löschen der Frage? Es ist nicht furchtbar gültig für andere, da es nur eine version was. Und ich kann nicht daneben dein Kommentar, als die richtige Antwort.
Lass es einfach wie es ist, es gibt deutlich Schlimmeres Frage auf die Seite, die gelöscht werden sollen.e.g dieser jüngsten ein: stackoverflow.com/questions/4612706/...
InformationsquelleAutor Jake | 2011-01-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie es so machen.
InformationsquelleAutor arden
Statt = verwenden, können Sie verwenden, #{variable-name}. Hier ist ein Beispiel, wie verwende ich es:
Dadurch wird das Rendern einer Seite mit einem Menü für die navigation. Vorbei an den Titel der Seite in der jedes mal die Seite geladen wird, natürlich, werden Sie brauchen, um eine app zu erstellen.get-Funktion für jede Seite.
App.js
Profil.jade
layout.jade
InformationsquelleAutor Jack
Ich denke, der Fehler ist irgendwann, verursacht durch die Anfrage durch den browser favicon.ico.
Versuchen Sie, diese Zeilen in das layout ein.jade-Kopf-Verknüpfung das Symbol
Dieser entfernt den gleichen Fehler, dass ich immer
InformationsquelleAutor slv007