如何修复“类型错误无法读取未定义的属性 0”?
2019-05-19
1293
我无法在我的 .hbs 文件中获取
row[].column_name
,尽管当我
console.log(row)
时它会显示结果。
错误如下:
TypeError: Cannot read property 0 of undefined
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}}
1个回答
TypeError: Cannot read property 0 of undefined
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);
});
});
Sridhar
2019-05-20