无法在本地主机中将查询参数与expressJs api一起使用

Tra*_*211 5 javascript node.js express postman

在我的index.js档案中

app.use('/api/v1/users', userRouter)
Run Code Online (Sandbox Code Playgroud)

在路由器文件中

router.get("/:id", getUserDataById);
Run Code Online (Sandbox Code Playgroud)

在邮递员中:

我的 GET URL 如下所示:http://localhost:3000/api/v1/users?id=120622

它给出的错误:

Cannot GET /api/v1/users
Run Code Online (Sandbox Code Playgroud)

我认为,这就是根据我遵循的文档和教程给出查询参数的方式,但这个错误不会消失。

如果我删除查询,那么其他端点可以完美工作。

我无法发现这里出了什么问题。

过去两天我一直坚持这个问题。只需一个解决此问题的提示,就会对我有很大帮助。

提前致谢!

小智 1

首先,您的index.js文件routes.js很好,现在您只需要正确发送请求即可看到 req.params 不同并且 req.query 不同

第一种方式(查询)

在邮递员中:

http://localhost:3000/api/v1/users?id=120622
Run Code Online (Sandbox Code Playgroud)

你的索引。

app.use('/api/v1/users', userRouter);
Run Code Online (Sandbox Code Playgroud)

在路由器文件中。

router.get("/", getUserDataById);
Run Code Online (Sandbox Code Playgroud)

你是怎么得到这个id的;

let id = req.query.id;
Run Code Online (Sandbox Code Playgroud)

第二种方式(Params) - 仔细查看邮递员 URL 和 Route

在邮递员中:

http://localhost:3000/api/v1/users/120622
Run Code Online (Sandbox Code Playgroud)

你的索引。

app.use('/api/v1/users', userRouter);
Run Code Online (Sandbox Code Playgroud)

在路由器文件中。

router.get("/:id", getUserDataById);
Run Code Online (Sandbox Code Playgroud)

你是怎么得到这个id的;

let id = req.params.id;
Run Code Online (Sandbox Code Playgroud)

这是您获取 ID 的两种方式。如果您还有其他问题,请告诉我,我会尽力更清楚地阐明您的观点。