我目前正在尝试让我的Ionic 2程序在调用时更新用户字段,在我的user-service.ts文件中我有以下代码:
// Update a user
update(user: User): Observable<User> {
let url = `${this.usersUrl}/${user._id}`;
let body = JSON.stringify(user);
let headers = new Headers({'Content-Type': 'application/json'});
console.log(url, body);
return this.http.put(url, body, {headers: headers})
.map(() => user) //See mdn.io/arrowfunctions
.catch(this.handleError);
}
当我调用它时,server.js文件应运行以下命令:
// PUT: update a todo by id
app.put("/api/users/:id", function(req, res) {
console.log('test');
var updateUser = req.body;
delete updateUser._id;
db.collection("users").updateOne({_id: new ObjectID(req.params.id)}, updateUser, function(err, doc) {
if (err) {
handleError(res, err.message, "Failed to update user");
} else {
res.status(204).end();
}
});
});
复制和粘贴时,在user-service.ts文件中的我的console.log正确调用该函数并显示测试消息,但这并不能自行完成。任何建议将不胜感激。感谢
答案 0 :(得分:0)
问题似乎是您需要订阅update
来电。
例如:
userService.update(myUser).subscribe((response:any) => {
//Do something with the response.
});