2014-11-16 5 views
0

이번 주말에 node.js와 mongo.db를 가지고 놀고 있습니다. 지금은 컬렉션 내의 레코드를 업데이트하려고합니다.mongodb 컬렉션 레코드 업데이트

archiveuser 함수가 호출되면 developertools 콘솔에서 'net : ERR_EMPTY_RESPONSE'리소스를로드하지 못했습니다. 저는 사용자를 삭제하기 위해 archiveuser 함수에 유사한 스 니펫을 사용하고 있으며 완벽하게 작동합니다. 왜 이것이 지금 실패하고 있는지 나는 이해할 수 없다.

내가 users.js 내에서 업데이트를 수행하는 코드의 조각을 작성했습니다 : 나는라면

function archiveUser(event) { 
    $.ajax({ 
     type: 'UPDATE', 
     url: '/users/updateuser/' + $(this).attr('rel') 
    }).done(function(response) { 

     // Check for a successful (blank) response 
     if (response.msg === '') { 
      alert('Success'); 
     } 
     else { 
      alert('Error: ' + response.msg); 
     } 
    }); 
}; 

:이 기능에서 global.js에서 호출되는

router.put('/updateuser/:id', function(req, res) { 
    var db = req.db; 
    var userToUpdate = req.params.id; 

    db.userlist.update({"_id" : userToUpdate}, 
     { 
      $set:{'archived':'1'} 
     }) 
}); 

PHP와 MySQL을 사용하여 업데이트 쿼리를 실행할 것입니다. @Philipp는 지적

UPDATE userlist 
SET archived='1' 
WHERE id=$usertodelete; 

은 어떤 도움이 많은 코드가 괜찮 예상대로 작동 토니

+0

코드가 올바르게 표시됩니다. 그러나 'userToUpdate'가 올바르게 형식화되고 유효한 ObjectId라는 전제하에 만 가능합니다. 정확히 어떤 문자열이'db.userlist.update'에 전달되었는지 확인하십시오. – Philipp

+0

@Philipp - 문자열은 54654563c46d365a4c60ed98입니다. 컬렉션 내의 사용자 ID와 일치합니다 – tonyedwardspz

+0

ajax 요청이/users/updateuser/[id에있는 동안 라우터가/updateuser/[id]'에 바인드하는 것이 문제가 될 수 있습니다 ]'? – Philipp

답변

0

을 감사합니다.

내가 가지고 있던 문제는 내가 필요 노드 서버는 Node.js를의 JS 파일에 대한 모든 변화를 다시 시작하는 것을 (경로 app.js 등)

내가 설치 한 nodemon을 실현하지 않았다이다 (https://github.com/remy/nodemon) 변경을 감지 할 때마다 서버를 다시 시작합니다. 웹 브라우저를 실시간으로 다시로드하는 기능이 결합되어 문제가 해결되었습니다.