我仍然是NodeJS的新手,我正在使用快递和快递车把套件。 但是,'if-statement'无法正常工作,实际上根本没有。我想这是因为我没有为if语句使用模板。
只使用包'把手',我会选择:
while 1:
x=str(ser.readline())
x = re.findall("\d+\.\d+", x)
x = float(x[0])
print(x)
此解决方案实际上有效。
但是,我已经在整个代码中使用了快速把手,并希望继续使用它。我得到了以下代码:
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);
...
}
我的html代码如下所示:
//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});
});
value1和value 2正确显示。 '你好!'不是因为我认为它不是模板。 有谁知道如何使代码与快递把手一起使用?
答案 0 :(得分:0)
我刚才自己回答了。 解决方案是:
router.get('/', function(req, res){
res.render('index', {
name,
helpers});
});
答案 1 :(得分:0)
将此添加到server.js中
const isEqual = function(a, b, opts) {
if (a == b) {
return opts.fn(this)
} else {
return opts.inverse(this)
}
}
var hbs = require('hbs');
hbs.registerHelper('if_eq', isEqual);