node.js - router不传参数为何404?
本文介绍了node.js - router不传参数为何404?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
注册了一个路由
router.get('/user/:id', user.find);
我想设计的是传入id一个操作,不传id参数另一个操作
但是不传id参数直接就404了,我只能再注册一个
router.get('/user/', user.find);
感觉这用法很奇怪
用的是koa-router模块
解决方案
你这么写参数叫做path variable
,是路由其中的必填部分,如果想做可选参数,应该用query parameter
(即:?
传參)
修正:
之前没看过这个koa-router
,我是按照标准的http
访问逻辑来建议的,但刚才看了下文档,发现这个东西不是一般的变态(简直莫名奇妙),于是我上面的建议就不能用了。
得这样:
router.get('/user/:id?', user.find);
然后客户端访问时,就可以不填id
,直接/user/
这样访问了,看文档:
没用过
koa
,不知道这算哪门子逻辑,我不服
补充:
关于路由规范,在文档的:
是由另一个库path-to-regexp来处理的
这篇关于node.js - router不传参数为何404?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文