나는 mongodb에서 작동하는 findOne 함수를 얻으 려하고있다. 이 튜토리얼 (http://cwbuecheler.com/web/tutorials/2014/restful-web-app-node-express-mongodb/)을 따라 가면 잘 작동하지만, 간단한 findOne을 얻으려고 할 때 그런 문제가 발생했습니다. 누군가 나를 도와주세요. 나는 내가 할 수있는 모든 튜토리얼을 검색하고 난 그냥 ({_ ID : "idnumber는"}) findone을 사용할 수 없습니다 알고몽고킨과 노드가있는 findOne
router.get('/userlist/:id', function(req, res) {
db = req.db;
ObjectID = require('mongoskin').ObjectID;
var userToGet = req.params.id;
db.collection('userlist').findOne({_id: db.ObjectID.createFromHexString(userToGet)}, function(err, result) {
console.log(result.username);
});
});
내가 오류,하지만 난 내 잘못이 무엇인지 모른다 "정의되지 않은"createFromHexString 메서드를 호출 할 수 없습니다. mongoskin.objectid가 필요한 위치는 어디입니까?
내 findall은 완벽하게 작동합니다 :
router.get('/userlist', function(req, res) {
db = req.db;
db.collection('userlist').find().toArray(function (err, items) {
res.json(items);
});
});
어떤 도움을 주시면 감사하겠습니다.
db.ObjectID.createFromHexString(userToGet)
, 당신은 일을해야한다 :
ObjectID.createFromHexString(userToGet)
당신이 한 때 이미 ObjectID
변수를 선언하기 때문에 :
감사합니다. 나는 var을 실수로 버렸지 만 db를 삭제해야한다는 것을 알지 못했습니다! 다시 한 번 감사드립니다 :) – user1180888
추가 팁 : .jshint 파일과 편집기 용 jshint 플러그인을 사용하십시오. 그리고 나서''use strict ';''행을 모든 파일 상단에 추가하십시오. 그리고 모든'var'과 비슷한 문제를 지적 할 것입니다 :) – Zlatko