node.js - router不传参数为何404?
巴扎黑
巴扎黑 2017-04-17 14:19:34
[Node.js讨论组]

注册了一个路由

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

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

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

感觉这用法很奇怪

用的是koa-router模块

巴扎黑
巴扎黑

全部回复(1)
天蓬老师

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

修正:

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

得这样:

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

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

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

补充:

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号