首页 > 解决方案 > 通过Nodejs中的查询字符串获取用户

问题描述

我试图通过 id 或某些参数获取用户,但响应始终是所有用户。我使用 get 方法而没有任何查询,只是测试 api 没有任何身份验证。

代码 :

router.get('/:id', async (req, res) => {
    const user = await User.findById(req.query.id);
    if (!user)
        return res.status(404).send("The user with the given ID was not found.");
    res.send(user);
});

网址:http://localhost:4000/api/user?id=5e6e8159fd64bf27042a8838

响应总是得到所有用户

任何帮助请

标签: node.jsexpress

解决方案


从您的代码中我可以理解的是您的路线看起来像router.get('/:id')

这意味着 URL 应该类似于/user/{id}.

您正在触发的 URL/user?id={id}可能不会到达此路由,因为它没有{id}路由参数。

到达这条路线的实际 URL 是 -

http://localhost:4000/api/user/5e6e8159fd64bf27042a8838.

你应该阅读 id 的方式是request.params.id

我怀疑/user路由指向获取所有用户 API,这就是为什么你要让所有用户做出响应。


推荐阅读