无法读取未定义的属性 - NodeJS,Express,Mongoose

时间:2012-08-16 13:33:22

标签: javascript node.js express mongoose

我有两个功能

exports.list = function (req, res){
Material.find(function(err, materials) {
    res.render('materials/list', {title: 'Pagina Materiali', materials: materials});
});
}

exports.modify = function (req, res){
Material.findById(req.params.id, function(err, materials){
    res.render('materials/edit', {title: 'Pagina materiale singolo', materials: materials});
});
}

第一个正常工作,我用这个Jade片段循环它:

each material in materials
    p Nome materiale: #{material.m_name} | Tipo materiale: #{material.type} | 
     a(href='materials/edit/#{material.id}') Modifica Materiale

但我无法让第二个工作,Express告诉我它无法读取未定义的属性。如果我在控制台中查看结果或只是返回它,我可以看到它正在选择正确的值,只是因为我无法在模板中正确显示它。 有帮助吗?谢谢!

1 个答案:

答案 0 :(得分:1)

findById按ID查找单个文档。你试图将它作为一组对象。

在节点中你需要这样的东西:

Material.findById(req.params.id, function(err, material){
    res.render('materials/edit', {title: 'Pagina materiale singolo', material: material});
});

在玉中:

p Nome materiale: #{material.m_name} | Tipo materiale: #{material.type} | 
  a(href='materials/edit/#{material.id}') Modifica Materiale