GET请求在Postman的后端工作,但向前端返回null

问题描述 投票:0回答:1

我有一个GET请求,如果我以api / watchlist /?creator = 5dac9d3567aca81e40bfc0之类的参数将创建者添加到帖子中,并在Postman中对其进行测试,结果将正确返回该创建者的所有帖子,并带有以下代码。

app.js

  app.get('/api/watchlist',(req, res, next)=>{
  Watching.find({ creator: req.query.creator})
  .then(documents => {
    console.log("Creator value: " + req.query.creator);
   res.status(200).json({
     message: 'User\'s watchlist items retrieved!',
     posts: documents

  });

   });
   });

如果我尝试将GET请求拉入angular,那么它将不返回任何内容。当我打开相关网页时,前端也说前端在说ERROR TypeError: "retrievedData.posts is undefined" getWatchListItems watch-list.service.ts:72

watch-list.service.ts

getWatchListItems(创建者:字符串){

this.http
  .get<{ message: string; posts: any; maxPosts: number; watchlist: string }>(
    "http://localhost:3000/api/watchlist?creator=" + creator
  )
  .pipe(
    map(retrievedData  => {
      console.log(retrievedData.watchlist);
               return {
        posts: retrievedData.posts.map(post => {
      console.log(retrievedData.watchlist);
          return {
        title: post.title,
        cost: post.cost,
        listingOwner: post.listingOwner,
        id: post._id
          };

        }),
        maxPosts: retrievedData .maxPosts
      };
    })
  )
  .subscribe(transformedPostData => {
    console.log(transformedPostData);
    this.posts = transformedPostData.posts;
    this.postsUpdated.next({
      listing: [...this.posts],
      postCount: transformedPostData.maxPosts
    });
  });

}

watching.component.ts

 ngOnInit() {
    this.userId = localStorage.getItem("userId: ");
    //  this.userId = this.authService.getUserId();
    this.watchListService.getWatchListItems(this.userId);
    this.postsSub = this.watchListService
      .getPostUpdateListener()
      .subscribe((postData: { listing: Watching[]; postCount: number }) => {

        this.totalPosts = postData.postCount;
        this.posts = postData.listing;

      });

  }
node.js angular express mongoose
1个回答
0
投票

您将在角服务中将创建作为路径参数发送。

© www.soinside.com 2019 - 2024. All rights reserved.