React +带参数的MongoDB GET请求如何

bis0qfac  于 2022-11-03  发布在  Go
关注(0)|答案(1)|浏览(126)

我试图从我的MongoDB数据库中访问一个文档包含的名称值等于我从前端传递的名称值。现在,我得到了一个200响应,但数据为空,日志显示我的查询未定义,但我不知道为什么。

这是我的BE的样子

recordRoutes.route("/test").get(function (req, res) {
  let db_connect = dbo.getDb();
  let query = req.params.currentName;
  console.log('QUERY:', query);

  db_connect.collection("records").findOne({'name': query}, function (err, result) {
    if (err) throw err;
    res.json(result);

  });
});

"这是我在前台的电话“

const fetchUser = useCallback(async (e) => {
        e.preventDefault();

       await axios.get(`http://localhost:5000/test`, {params: {currentName}} )
        .then((response) => {
            console.log('RESPONSE IS:', response);
           // console.log('RESPONSE.DATA:', response.data);
            //return response;

        })
        .then((data) => {
            console.log('DATA IS:', data);
            setData(data);
        })
        .catch((e) => console.log(e))

       //return;
      }

    , [currentName]);

你知道为什么我什么都没收到吗
注意:如果我在后端中硬编码**.findOne({'name':'Test 2'}**,.. etc,**它确实找到了名称确实为Test 2的文档。**我猜我获取req.params.currentName的方式不知怎么的有问题。

任何帮助都将不胜感激。谢谢!

1cklez4t

1cklez4t1#

在前端将请求URL更改为此

await axios.get(`http://localhost:5000/test/${currentName}`)

在API路由中这样修改路由

recordRoutes.route("/test/:currentName").get(function (req, res) {

相关问题