什么是:“元素延伸到对象的末端”?我该如何解决?

时间:2011-02-28 03:35:16

标签: mongodb node.js mongoose

我在这条路线中收到错误:“元素延伸到对象的末尾”。我用谷歌搜索,但没有找到任何东西。有谁知道我如何解决它以及究竟是什么问题?

谢谢!

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'); 
      }
  });

});

1 个答案:

答案 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'); 
      }
  });
});