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 に答える