如何解决express 中的高级可选路由 预期结果:req.query 返回一个与我想要的完全一样的输入对象
我正在尝试使用 express 和 node.js 构建 crud 应用程序
示例查询字符串
/table/?id=78&title=someTitle&code=3
但是问题是我必须输入带有空值的整个 url 字符串,或者这些值混合在一起,或者 express 无法识别我的正则表达式模式(模式根据 {{3 }} 网站)
我试过了:
-
路线:
/table/\??(id=)?:id?\&?(title=)?:title?\&?(code=)?:code?
路径:
/table/?id=78&title=someTitle&code=3
结果:
-
创建了我自己的正则表达式:
\/table\/\??(id=78)?\&?(title=someTitle)?\&?(code=3)?
除非我添加可选的 express 参数,否则这将起作用。
预期结果:
Path
/table/?id=78
request.params
{ id: '78'}
----
Path
/table/?code=3
request.params
{ code: '3' }
----
Path
/table/?id=78&title=someTitle
request.params
{ id: '78',title: 'someTitle' }
PS:我知道我可以通过将正则表达式与 request.url 匹配来实现这一点但我想知道是否还有其他方法可以使用 express。
解决方法
答案如下:
我可以通过使用 req.query
而不是 req.params
req.query 返回一个与我想要的完全一样的输入对象
路径
/table/?id=78&title=someTitle
请求.查询
{ id: '78',title: 'someTitle' }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。