不从角度服务调用nodejs restapi。
users.component.ts
editUser(){
const updatedUser ={
_id: this._id,
name: this.name,
email: this.email,
mobile: this.mobile
}
console.log(updatedUser)
this.usersService.updateUser(updatedUser)
this.readUsers();
}
users.service.ts
updateUser(updatedUser){
return this.http.post('http://localhost:3000/edit/' + updatedUser._id, updatedUser).pipe(
map(res => res.json())
)
}
nodejs restapi
userRoutes.js
const edituser = []
router.post('/edit/:id', (req, res) => {
console.log('fromEditRoute')
User.findByIdAndUpdate({_id : req.params.id}, req.body)
.then(result => {
edituser.push(result)
res.json(edituser)
})
.catch(error => {
console.log(error);
res.status(500).json({message: 'An Error Occured'});
})
console.log('hello')
})
路径中的console.log()甚至都不会打印。
我们将尽一切帮助,谢谢!!
答案 0 :(得分:2)
this.usersService.updateUser(updatedUser).subscibe(console.log);
您需要订阅才能触发该请求。默认情况下,可观察对象是惰性的。除非您订阅,否则执行不会开始。
答案 1 :(得分:0)
users.component.ts
editUser(){
const updatedUser ={
_id: this._id,
name: this.name,
email: this.email,
mobile: this.mobile
}
console.log(updatedUser)
this.usersService.updateUser(updatedUser).subscribe((response: any)=> {
console.log(response);
})
this.readUsers();
}
答案 2 :(得分:0)
问题是因为您没有订阅API调用。管道不会订阅可观察者。一旦完成订阅,它将执行调用。否则它将挂起而没有给出响应。那就是为什么你没有得到任何回应
如下更改用户服务:
updateUser(updatedUser){
return this.http.post('http://localhost:3000/edit/' + updatedUser._id, updatedUser).subscibe(console.log);
}