router不传参数为何404?

发布于 2022-09-02 23:43:35 字数 236 浏览 8 评论 0

注册了一个路由

router.get('/user/:id', user.find);

我想设计的是传入id一个操作,不传id参数另一个操作
但是不传id参数直接就404了,我只能再注册一个

router.get('/user/', user.find);

感觉这用法很奇怪

用的是koa-router模块

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦幻之岛 2022-09-09 23:43:35

你这么写参数叫做path variable,是路由其中的必填部分,如果想做可选参数,应该用query parameter(即:?传參)

修正:

之前没看过这个koa-router,我是按照标准的http访问逻辑来建议的,但刚才看了下文档,发现这个东西不是一般的变态(简直莫名奇妙),于是我上面的建议就不能用了。

得这样:

router.get('/user/:id?', user.find);

然后客户端访问时,就可以不填id,直接/user/这样访问了,看文档:

图片描述

没用过koa,不知道这算哪门子逻辑,我不服

补充:

关于路由规范,在文档的:

图片描述

是由另一个库path-to-regexp来处理的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文