2016-12-31 4 views
0

상태 : books.update ({ "id": {$ eq : bid}}, {$ set : { "status": 로그인}} ... 변수 입찰을 사용할 때 하지만 books.update ({ "id": {$ eq : 1}}와 같은 문장을 넣으면 {$ set : { "status": login}} 프로젝트에서 변수를 사용해야합니다.Expressjs mongodb 업데이트 쿼리

경우 는

노드 코드

app.get("/logged/:login/borrow/:bid/confirm", function(req,res){ 
    var login = req.params.login; 
    var bid = req.params.bid; 
    MongoClient.connect(url, function(err, db) { 
    assert.equal(null, err); 
    console.log("Nawiązano połączenie z serwerem"); 
    var books = db.collection('books'); 
     books.update({"id": {$eq: bid}}, {$set:{"status": login}}, function(er, result){ 
     assert.equal(er, null); 
     res.redirect('/logged/'+login+'/borrow'); 
     }); 
    db.close(); 
    }); 
}); 

붙여 넣기 한진 해운 파일 어쩌면

<a href="/logged/{{nick}}/return/{{id}}/confirm"></a> 
+0

완벽하게 작동합니다. – quimak

답변

0

1을 사용하는 쿼리가 숫자 값이므로 숫자를 추측합니다.

요청 매개 변수는 문자열입니다. 문자열을 정수로 변환하면 괜찮을 것입니다.

var bid = parseInt(req.params.bid); 
0

req.params.bid은 문자열 번호를 제공하므로 일치하지 않습니다. id 필드가 1을 찾고있을 수 있지만 변수 입찰에 '1'을 전송할 것입니다.

입찰가를 숫자로 변환 한 다음 확인하십시오.