问题描述
我正在尝试使用 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' }