我在这条路线中收到错误:“元素延伸到对象的末尾”。我用谷歌搜索,但没有找到任何东西。有谁知道我如何解决它以及究竟是什么问题?
谢谢!
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');
}
});
});
答案 0 :(得分:2)
也许你只是使用了错误的方法,findById
只能通过ObjectID进行搜索。在您的上下文中(我真的不知道您发送的是req.params.name),我认为您不应该按ID搜索。
尝试使用findOne
代替(将[yournamefield]替换为Item模型中的相应字段名称):
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');
}
});
});