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?