2017-01-13 25 views
0

Ich bin noch ziemlich neu bei NodeJS und benutze die Express- und Express-Lenker-Pakete. Die 'if-Anweisung' funktioniert jedoch nicht richtig, in der Tat überhaupt nicht. Ich nehme an, der Grund dafür ist, dass ich keine Vorlage für die if-Anweisung verwende. express-lenker # if statement

Verwenden Sie einfach das Paket 'Lenker', würde ich gehen mit:

rs.readFile('files/test.hbs', 'utf-8', function(err, data) 
{ 
var template = hbs.compile(data); 
var result = template ({name: 'name', value1: 'value1', value2: 'value2'}); 
res.end (result); 
... 
} 

Diese Lösung tatsächlich funktioniert.

Allerdings habe ich bereits Express-Lenker im gesamten Code verwendet und möchte es weiterhin nutzen. Ich habe folgenden Code:

//I´ll receive value1 and value2 later either directly from my database or with the help of MQTT 
var value1 = ' value1'; 
var value2 = 'value2'; 
var name = 'name'; 
var helpers={ 
     value1:function(){return value1;}, 
     value2:function(){return value2;}, 
     name: function(){return name;} 
     } 


router.get('/', function(req, res){ 
      res.render('index', {helpers}); 
     }); 

Mein HTML-Code sieht wie folgt aus:

<div> 
    <h1> {{value1}} </h1> 
    <h2> {{value2}} </h2> 
     {{#if name}} 
      <h3> hello there! </h3> 
     {{/if}} 

    </div> 

Wert1 und Wert 2 korrekt dargestellt. 'Hallo!' ist nicht, wie ich denke, es ist keine Vorlage. Weiß jemand, wie ich Code mit Express-Lenker arbeiten kann?

Antwort

0

Ich habe es nur selbst beantwortet. Die Lösung ist:

 router.get('/', function(req, res){ 
     res.render('index', { 
     name, 
     helpers}); 
    });