当row[].column_name
显示结果时,无法在我的.hbs文件中完全获得console.log(row)
。
错误如下:
TypeError:无法读取未定义的属性0
router.get('/:id/baiviet', (req, res) => {
var id = req.params.id;
var p = baivietModel.allByCat(id);
var q = chuyenmuc.singel(id); // singel(id) return a promise
var row;
q.then(rows => {
row = rows;
});
p.then(rows => {
for (const cm of res.locals.lcChuyenmuc) {
if (cm.ID == +id) {
cm.isActive = true;
}
}
res.render('vwBaiviet/byCat', {
baiviet: rows,
CM: row[0]
});
}).catch(err => {
console.log(err);
});
});
我的.hbs文件:
{{this.CM.Name}}
答案 0 :(得分:0)
TypeError:无法读取未定义的属性0
var row;
将row
的值初始化为undefined
,因此会出现该错误。
如果您使用Promise.all
,则可以解决两个承诺并立即发送一个值。
router.get('/:id/baiviet', (req, res) => {
var {id} = req.params;
Promise.all([
baivietModel.allByCat(id),
chuyenmuc.singel(id) // singel(id) return a promise
]).then(([prows, qrows]) => {
// ... your other code
res.render('vwBaiviet/byCat', {
baiviet: prows,
CM: qrows[0]
});
}).catch(err => {
console.log(err);
});
});