0
私はNodeJSにまだまだ慣れていません。エクスプレスハンドルとエクスプレスハンドルバーのパッケージを使用しています。 しかし、 'if-statement'は実際にはまったく正しく動作しません。私は、この理由は、if文のテンプレートを使用していないということです。ただパッケージ 'ハンドル' を使用してexpress-handlebars#ifステートメント
、私は行くだろう:
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);
...
}
このソリューションは、実際に動作します。
しかし、コード全体ですでにエクスプレスハンドルバーを使用していて、使い続けたいと思っています。私は、コードを次のようだ:
//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});
});
私のhtmlコードは次のようになります。
<div>
<h1> {{value1}} </h1>
<h2> {{value2}} </h2>
{{#if name}}
<h3> hello there! </h3>
{{/if}}
</div>
value1と値2が正しく表示されます。 'こんにちは!'私はテンプレートではないとは思わない。 エクスプレスハンドルバーでコードを動作させる方法を知っている人はいますか?