2016-09-07 2 views
0

express에서 put 요청을 사용하여 모든 모델을 업데이트하고 싶습니다.모든 모델 업데이트 Express.js

router.put('/update/:id', function(req,res){ 
    Perfiles.findByIdAndUpdate(req.params.id,req, function(err){ 
    if(err) { res.send(err);} 
    res.json({messaje:'Done'}); 
    }); 
}); 
: 예를 들어 내가 함께 시도 내하는 index.js에서 enter image description here (기존의 모든 필드 필요가 없습니다) 나는 새로운 데이터를 전송 풋 요청을 사용하여이

{ 
    '_id': '123' 
    'name' : 'jonh', 
    'last' : 'smith', 
    'email': '[email protected]', 
    'phone': 'HTC', 
    ...[more data] 
} 

같은 MongoDB를의 컬렉션이

하지만 여전히 내 컬렉션은 변경되지 않았습니다. 다른 필드가 삭제 되더라도 업데이트하고 싶습니다.

{ 
    '_id': '123' 
    'name' : 'Carl', 
    'phone': 'iPhone' 
} 
+0

를 POST 경우 귀하의 업데이트 쿼리로 주어 지지만 params는 req.body에 있습니다. – Gatsbill

+0

@ Gatsbill 그래, 나는이 게시물을 게시 한 지 5 분 후에 나타났습니다. –

답변

0

req 객체를 값으로 전달하여 업데이트 할 수 있습니다.하지만 req는 무엇입니까?

Perfiles.findByIdAndUpdate(req.params.id,req, function(err){ 
    //what is req? 
    console.log(req); 
    // it's a big express' object 
}) 

당신은 당신이 URL의 매개 변수 또는 URL의 쿼리에서 값을 전송 여부에 따라, 업데이트 할 어떤 키와 값 제공 할 필요가있다 또는 당신은 당신의 findByIdAndUpdate의 개체 다음 req.body

router.put('/update/:id', function(req,res){ 
    //since you POST the object then use req.body 
    var newObject = { 
     name: req.body.name, 
     phone: req.body.phone 
     }; 

    Perfiles.findByIdAndUpdate(req.params.id, newObject, function(err){ 
    if(err) { res.send(err);} 
    res.json({messaje:'Done'}); 
    }); 
});