如何通过id(MEAN Stack)从数据库中获取一个数据



我正在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);
    });
}

最新更新