Sails.js如何修改路线interprate逗号分隔的ID列表(Sails.js how to

2019-10-21 07:31发布

据一些JSON API specifciations,如http://jsonapi.org/format/#urls-individual-resources ,服务器应该解释GET请求/为MyResources / 1,2,3,4,5。

眼下Sails.js路由器将其发送至findOne行动。

是什么让这得到妥善处理的最佳方式?

我认为理想的路由器应该解释/1,2,3,4,5以同样的方式,将解释?ids[1,2,3,4,5]但我知道这可能不是小事。

另一种选择是一个政策添加到所有findOne请求,以检查是否req.params('id')有逗号,然后重新格式化ID列表的查询字符串,然后重定向到find (将这项工作?)。 恼人样的策略添加到每个控制器。

思考?

Answer 1:

我认为这是你的建议,但它的根本问题放在这在findone.js蓝图的顶部。 (或添加此作为政策)。 只是检查,以确保它的一个字符串(柜面您已经传递了一个数组。

if(typeof req.params.id === "string"){
    req.params.id = req.params.id.split(',')
}

编辑

为了实现任何人,请记住,你的findOne政策将适用于这种要求(见注释)。 例如,假设你有一个政策find应用于一些参数req.options.where过滤基于用户的许可记录。 这不会在这种情况下应用!

编辑除非你只是让你的路线指导这些到索引/查找路线。 你可以使用其他一切蓝图的路线,但那些用逗号url中的“重点”部分。



文章来源: Sails.js how to modify routes to interprate comma separated list of ids