何时使用查询和参数在 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 - 此查询字符串修改了 howwhat 返回的数据,这就是 [=44 中查询字符串的目的=] API的。