node.js - router不传参数为何404?

查看:213
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆