Mongodb在put请求返回成功后没有更新数据

时间:2017-04-03 12:14:52

标签: node.js mongodb express mongoose mean-stack

尝试使用mongoose模式中的objectid作为参考来执行put来更新集合中的文档。控制台会将其记录为成功,但是当我刷新页面或查看mongo shell时,没有任何变化。

继续使用expressjs路由器:

router.put('/messageupdate/:empId', function (req, res) {
    var values = req.body;
    console.log(values);
    var empId = req.params.empId;
    console.log(empId);
    Message.update({empId: empId}, values, function(err, values) {
        if (!err) {
            res.json("okay");
        } else {
            res.write("fail");
        }
    });
})

下面是服务方法:

updateServiceWithId(message: Message): Observable<any> {
 console.log(message);
    const body = JSON.stringify(message);
    console.log(body);
    const headers = new Headers({'Content-Type': 'application/json'});
    return this.http.put('http://localhost:3000/messageupdate/:empId', body, {headers: headers});

}

接下来是触发put的客户端方法:

onUpdateMessage() {
     var retVal = confirm("Do you want to continue ?");
           if( retVal == true ){
    const message = new Message(this.fname,this.lname,this.empId,this.number,this.occu);
    console.log(this.fname);console.log(this.lname);
    console.log(this.empId);console.log(this.occu);
    this.messages.push(message);
    this.messageService.updateServiceWithId(message)
        .subscribe(
            () => console.log('Success!'),
            error => console.error(error)
        );
    }
    else{
              alert("Edit cancled!");
              return false;
        }
}

0 个答案:

没有答案