我正在MEAN堆栈中创建一个应用程序,您可以在其中上传房产以出售和出租。我想为每一个上传的属性创建一个页面。为此,我需要从数据库中按id获取该属性。我可以在后端服务器上得到它,但在前端看不到它。我上传了代码,这样你就能更好地理解它。
后端代码user.js
router.get("/:id", (req, res, next) => {
let loggedInUser;
User.findById(req.params.id).then(user => {
if (user) {
loggedInUser = user;
console.log(loggedInUser);
res.json({
email: user.email,
firstName: user.firstName,
lastName: user.lastName,
phone: user.phone,
image: user.image,
jobTitle: user.jobTitle
});
} else {
res.status(404).json({ message: "User not found!" });
}
});
});
在auth.service.ts 中
private userData: LoggedInUser;
getUser(id: string){
let loggedInUser: LoggedInUser;
this.http.get<{user: any}>("http://localhost:3000/api/user/" + id)
.subscribe(response => {
loggedInUser = response.user;
this.userData = loggedInUser;
});
console.log(this.userData);
}
在这里,当我控制台时,我得到了未定义。记录它。
我只是在userhome.component.ts.中运行getUser方法
ngOnInit() {
this.authService.getUser(this.id);
}
我真的很感激任何帮助!
由于您已经声明了与端点响应匹配的对象表示,因此此代码片段应该可以很好地工作。我建议你试试。
private userData: LoggedInUser;
getUser(id: string) {
this.http.get < LoggedInUser > ("http://localhost:3000/api/user/" + id)
.subscribe(response => {
this.userData = response.user;
console.log(this.userData);
});
}