2011-02-28 72 views
0

我收到错误:“元素延伸过去的对象结束”在这条路线。我GOOGLE了它,但没有发现什么。有谁知道我该如何修复它,究竟是什么问题?什么是“元素延伸到对象的结尾”?我该如何解决它?

谢谢!

app.get('/item/:name', function(req, res) { 
// console.log("Ok, we\'re in app.get \'item/:name\', let's debug"); 
    console.log(req.params.name); //== "something" here 
    Item.findById(req.params.name, function(err, doc) { 
     debugger; 
     if (err){ 
     console.log(err); // =="Element extends past end of object" 
     res.send(err); 
     } 
     else { 
     console.log(" in the app.get/item:name db.query. The item is: " + item); 
    // debugger; 
     res.render('items/view'); 
     } 
    }); 

});

回答

2

也许你只是使用错误的方法,findById只能通过ObjectID搜索。在你的情况下(我真的不知道你在发送req.params.name),我不认为你应该通过ID搜索。

app.get('/item/:name', function(req, res) { 
// console.log("Ok, we\'re in app.get \'item/:name\', let's debug"); 
    console.log(req.params.name); //== "something" here 
    Item.findOne({ [yournamefield]: req.params.name }, function(err, doc) { 
     debugger; 
     if (err){ 
     console.log(err); // =="Element extends past end of object" 
     res.send(err); 
     } 
     else { 
     console.log(" in the app.get/item:name db.query. The item is: " + item); 
    // debugger; 
     res.render('items/view'); 
     } 
    }); 
}); 

使用findOne而不是尝试(与你的项目模型内部的corresponsing字段名替换[yournamefield])

相关问题