何时使用查询和参数在 express 中获取 url 数据
When to use query and params to get url data in express
看来 /patient/123
和 /patient?id=123
在我的应用程序后端都可以正常工作。
我可以做到 req.param.id
,也可以做到 req.query.id
。
但我对何时使用感到困惑。什么情况下你应该使用params,什么情况下你应该使用query。因为在回答中 here, j_mcnally 只提到它们可以互换。
Url params and url path are somewhat interchangeable. People usually use url path for describing restful resources...
那么使用它们有哪些可能的优点和缺点。
查询字符串通常是 修饰符 到您 运行 的资源,而路径应该提供足够的信息让您的后端识别数据你在请求。
/patients/123
- patients
在这种情况下将是 命名空间 ,而 123
将是 标识符。您还可以使用以下方式扩展它:
/patients/123/profile
其中 profile
将是 预定义数据集合 的 标识符 。
查询字符串通常提供对资源呈现数据的内容和方式的细粒度控制,例如:
/patients/123?fields=firstname,lastname,age
- 这是不言自明的,但基本上在这种情况下查询字符串修改 what 返回的数据。
/patients?orderby=age&order=desc&fields=firstname,lastname&limit=25
- 此查询字符串修改了 how 和 what 返回的数据,这就是 [=44 中查询字符串的目的=] API的。
看来 /patient/123
和 /patient?id=123
在我的应用程序后端都可以正常工作。
我可以做到 req.param.id
,也可以做到 req.query.id
。
但我对何时使用感到困惑。什么情况下你应该使用params,什么情况下你应该使用query。因为在回答中 here, j_mcnally 只提到它们可以互换。
Url params and url path are somewhat interchangeable. People usually use url path for describing restful resources...
那么使用它们有哪些可能的优点和缺点。
查询字符串通常是 修饰符 到您 运行 的资源,而路径应该提供足够的信息让您的后端识别数据你在请求。
/patients/123
- patients
在这种情况下将是 命名空间 ,而 123
将是 标识符。您还可以使用以下方式扩展它:
/patients/123/profile
其中 profile
将是 预定义数据集合 的 标识符 。
查询字符串通常提供对资源呈现数据的内容和方式的细粒度控制,例如:
/patients/123?fields=firstname,lastname,age
- 这是不言自明的,但基本上在这种情况下查询字符串修改 what 返回的数据。
/patients?orderby=age&order=desc&fields=firstname,lastname&limit=25
- 此查询字符串修改了 how 和 what 返回的数据,这就是 [=44 中查询字符串的目的=] API的。