我通过mongoose从mongodb获取数据。然后我尝试通过res.render将数据传递给jade,但总是得到错误TypeError: Cannot read property 'name' of null
,但是这个属性是存在且有效的。
代码:
router.get('/item/:sku', (req, res, next) => {
Item.getItem(req.params.sku, (err, data) => {
console.log(data)
if(err)
next(err)
res.render('item', {
title: data.name,
data: data
})
})
})
输出:
{ sale: false,
createdAt: Fri Apr 29 2016 01:11:48 GMT+0700 (KRAT),
ordered: 0,
views: 0,
tags: [ 'tag1', 'tag2', 'tag3', 'tag4' ],
images: [ 'squirrel.jpg' ],
__v: 0,
backImage: '',
category: 57223f8ac80eb66928eae23e,
sku: 'SCH-002',
salePrice: 0,
price: 250,
description: 'test description',
name: 'Squirrel',
_id: 57225264b83ae185f3b2f4dc }
GET /item/SCH-002 200 1398.341 ms - 19177
/Users/lee/Projects/shepki/routes/index.js:30
title: data.name,
TypeError: Cannot read property 'name' of null
at /Users/lee/Projects/shepki/routes/index.js:30:18
at /Users/lee/Projects/shepki/modules/item.js:55:5
但是如果删除标题并传递整个数据 - 那就OK了。我不明白什么是错的。 感谢。