HTTP GET参数未传递到Express app.get

39 浏览
0 Comments

HTTP GET参数未传递到Express app.get

这个问题已经有了答案

如何在Node.js上的Express.js中获取GET(查询字符串)变量?

当我发出GET请求时,我在控制台输出(console.log)response并获得404的响应

  Http failure response for http://localhost:3000/api/watchings/?watchItemUniqueKey=5dab6083b68bd049c0b8f9ce%7C5daf5e0c8d261e5364acd8b6: 404 Not Found", err

所以我知道值作为参数传递,但我的app.js文件没有看到它。另外,在app.get开始处的console.log(“output:”+req.params.test);也没有输出,所以从watch-list.service.ts的GET请求也没有命中app.js文件。

任何帮助都将不胜感激。我一个月前才开始学习Node.js,所以还在努力理解运行方式。

watch-list.service.ts

 getWatchList(watchingId) {
    watchingId = watchingId.trim();
    let params1 = new HttpParams().set('watchItemUniqueKey', watchingId);
    return this.http.get<{}>(
        'http://localhost:3000/api/watchings/', {params: params1}
      ).
    subscribe((response) => {
        console.log(response);
      });
  }

app.js

app.get("/api/watchings/:test", (req, res, next) => {
console.log("output: " + req.params.test);
  Watching.find({"value": req.params.test})
  .then(documents =>{
  res.status(200).json({
    message: "Posts fetched Successfully",
    watchItems: documents,
  });
});
});

admin 更改状态以发布 2023年5月25日
0
0 Comments

你传递的是查询参数,你应该可以像下面这样访问它:

app.get("/api/watchings", (req, res, next) => {
console.log("output: " + req.query.watchItemUniqueKey);
  Watching.find({"value": req.query.watchItemUniqueKey})
  .then(documents =>{
  res.status(200).json({
    message: "Posts fetched Successfully",
    watchItems: documents,
  });
});
});

0