2011-02-28 3 views
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'); 
     } 
    }); 

});

답변

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] 대체)

관련 문제