0

我收到错误消息:此路线中的“元素超出对象的末尾”。我用谷歌搜索了它,但没有找到任何东西。有谁知道我该如何解决它以及问题到底是什么?

谢谢!

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

});

4

1 回答 1

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'); 
      }
  });
});
于 2011-02-28T09:25:19.330 回答