gpt4 book ai didi

javascript - Sails.js 如何修改路由以解释逗号分隔的 id 列表

转载 作者:太空宇宙 更新时间:2023-11-03 22:36:37 25 4
gpt4 key购买 nike

根据一些JSON API规范,例如http://jsonapi.org/format/#urls-individual-resources ,服务器应将 GET 请求解释为/myResources/1,2,3,4,5。

现在 Sails.js 路由器会将其发送到 findOne 操作。

正确处理此问题的最佳方法是什么?

我认为理想情况下路由器应该以与解释 ?ids[1,2,3,4,5] 相同的方式解释 /1,2,3,4,5 ,但我意识到这可能不是微不足道的。

另一个选项是向所有 findOne 请求添加一个策略,以检查 req.params('id') 是否包含逗号,然后将 id 列表重新格式化为查询字符串,然后重定向到 find (这可行吗?)。将策略添加到每个 Controller 有点烦人。

想法?

最佳答案

我认为这是您的建议,但这只是将其放在 findone.js 蓝图顶部的问题。 (或将其添加为策略)。只需检查以确保它是一个字符串(如果您已经传递了一个数组。

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

编辑:

对于任何实现者,请记住您的 findOne 政策将应用于此请求(请参阅评论)。例如,假设您有一个 find 策略,该策略将一些参数应用于 req.options.where 以根据用户的权限过滤记录。这在本例中不适用!

编辑除非你只是让你的路由将它们定向到索引/查找路由。您可以将蓝图路由用于其他所有内容,但 url 的“关键”部分中带有逗号的路由除外。

关于javascript - Sails.js 如何修改路由以解释逗号分隔的 id 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27071545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com