当此属性存在时,无法读取属性

时间:2016-04-28 20:02:51

标签: node.js express mongoose

我通过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了。我不明白什么是错的。 感谢。

0 个答案:

没有答案