我正在为我的 REST API 服务器使用 Node.js 和 Express 框架。
我已经使用查询参数创建了 get
路由并使用它们。
但我想创建一个像 facebook graph api 这样的功能,我可以使用我的 api 路由发送字段,例如
/me?fields=address,birthday,email,domains.limit(10){id,name,url}
我正在考虑从查询参数中获取字段,然后根据 进行拆分,例如
const fields = req.query.fields;
let fieldsArray = fields.split(',');
但是我如何传递子对象属性并从上面示例中的类似域字段的路由中检索它们。
/me?fields=地址,生日,电子邮件,domains.limit(10){id,name,url}
最佳答案
如果你使用像这样的点符号
/me?fields=address,domains.id,domains.name&dbQueryFilters=domains.limit=10
这可能意味着:
- 我希望在回复中包含这些字段:
- 地址
- 域名:
- ID
- 姓名
- 使用这些来查询数据库:
- 域名:
- 限制:10
- 域名:
您可以添加/删除此类查询变量,直到它明确传达您的 API 的功能,同时仍然非常基本。让事情保持简单和基本始终符合您的最大利益。
在nodeJS端,您可以使用像flat这样的库展开查询对象:
var fields = flat.unflatten(req.query.fields)
关于javascript - Node.js 和 Express Rest api 创建自定义字段路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51324808/