2016-06-26 12 views
6

Aus irgendeinem Grund kann ich eine Variable nicht an die Mops-Vorlage mit Node JS übergeben.Node JS Übergeben einer Variablen an Jade/Pug

app.get("/", function (req, res) { 
    res.render('index', { hello : 'Hey'}) 
}) 

....

extends layout.pug 

block content 
    h1 #{hello} guy 

Das gibt nur "Mann" in der Datei index.html

+0

können Sie mehr Code zu setzen? Was ist "App"? Was hat 'layout.pug'? – chharvey

Antwort

6

Ich glaube, Sie verwenden JADE-Codierung (# {hallo}) mit „Mops "(Update Jade) Plugin mit statischen .html - völlig falsch.

folgen die folgenden Zeilen:

  1. Verwendung dieses erste

    app.set('views', __dirname + '/public/views'); 
    app.set('view engine', 'pug'); 
    
  2. als dieser erste Besuch passieren

    app.get('/', function (req, res) { 
        res.render('index', { title: 'Hey', message: 'Hello there!'}); 
    }); 
    
  3. als in Vorlagendatei „index.pug echo "in"/public/Ansichten "

    html 
        head 
        title= title 
    body 
        h1= message 
    
+0

Es funktioniert immer noch nicht, alles ist gleich. –

+0

geben Sie mir Ihre Verzeichnisstruktur Snapshot + zeigen Sie mir Ihre Server-Datei mit app.set ('Blick', __dirname + '/ public/Ansichten'); app.set ('View Engine', 'Mops'); als Pass dies zum ersten Besuch app.get ('/', Funktion (Req, Res) { Res.Render ('Index', {Titel: 'Hey', Nachricht: 'Hallo da!'}); }); –

+0

Nun heißt es einfach "Express" https://github.com/jpking72/nodejsfiddle.git –

-1

vielleicht müssen Sie setzen Code wie ...

app.get("/", function (req, res) { 
    res.render('index', { 'hello' : 'Hey'}) 
}) 
+0

Ich bin mir nicht sicher über die Lösung der ursprünglichen Frage, aber ich kann Ihnen versichern, dass dies nicht die Lösung ist und sollte nicht haben beeinflussen. Ich habe in der Vergangenheit Express und Mops benutzt, und dieser Vorschlag wird nichts ändern. Ursprüngliche Frage Benutzer muss wahrscheinlich die Vorlage-Engine anders, etc, oder vielleicht einen Schritt verlassen. Ich kann mich nicht genug erinnern, um das OP zu beantworten. – Ryan

+0

das ist falsch. Javascript-Literal-Objekte können in Anführungszeichen gesetzt werden oder nicht, es macht keinen Unterschied. – chharvey