url 中的帆蓝图查询无法正常工作
sails blueprints query in url not working
我对 api 进行了各种 GET http 调用,格式如下:
/api/posts?userId=3
但是,它不会按其 userId
列过滤帖子,而是 returns 所有帖子,而不管帖子的用户 ID。
此语法在我过去的项目中也有效,并记录在案 here。 (他们给出的例子是GET /purchase?amount=99.99
)。
我看到的问题并没有以这种方式通过默认路由解决查询语言问题,所以我很难找到帮助。猜猜可能出了什么问题?
更新:
什么按预期工作
req.query
正在被策略设置和读取(例如,?userId=3
被 req.param("userId")
找到)
/api/posts?userId=3&populate=userId
填充 userId
字段,(但仍然 returns 所有用户的所有帖子)
- 按主键过滤(例如
?id=5
)过滤并且returns只有一个预期的记录
- 在 api 或 sails 控制台中工作时,(例如
Posts.find({userId: 3})
)工作
什么没有按预期工作
- 通过外键过滤(例如
?userId=6
)
- 按 non-foreign 键过滤(例如
?name=test
)
- 使用
where
过滤(例如 &where={"userId":1}
)
原来我在策略中的每个查询中都添加了一个 "where" 子句(例如,"where: {"status": "active"}}
)。在查询字符串中有一个 "where" 自动 overrides the other params,所以什么也看不到。 (准确地说,如果你有一个 where 子句,其他条件永远看不到)
出于某种原因,"where" 也无法设置 sails 0.12.13 的搜索条件,所以我最终破解了 sails 中的 parseCriteria
函数 actionUtils 和使用他们为 v.1 提供的那个对我有用。
希望对以后的人有所帮助
我对 api 进行了各种 GET http 调用,格式如下:
/api/posts?userId=3
但是,它不会按其 userId
列过滤帖子,而是 returns 所有帖子,而不管帖子的用户 ID。
此语法在我过去的项目中也有效,并记录在案 here。 (他们给出的例子是GET /purchase?amount=99.99
)。
我看到的问题并没有以这种方式通过默认路由解决查询语言问题,所以我很难找到帮助。猜猜可能出了什么问题?
更新:
什么按预期工作
req.query
正在被策略设置和读取(例如,?userId=3
被req.param("userId")
找到)/api/posts?userId=3&populate=userId
填充userId
字段,(但仍然 returns 所有用户的所有帖子)- 按主键过滤(例如
?id=5
)过滤并且returns只有一个预期的记录 - 在 api 或 sails 控制台中工作时,(例如
Posts.find({userId: 3})
)工作
什么没有按预期工作
- 通过外键过滤(例如
?userId=6
) - 按 non-foreign 键过滤(例如
?name=test
) - 使用
where
过滤(例如&where={"userId":1}
)
原来我在策略中的每个查询中都添加了一个 "where" 子句(例如,"where: {"status": "active"}}
)。在查询字符串中有一个 "where" 自动 overrides the other params,所以什么也看不到。 (准确地说,如果你有一个 where 子句,其他条件永远看不到)
出于某种原因,"where" 也无法设置 sails 0.12.13 的搜索条件,所以我最终破解了 sails 中的 parseCriteria
函数 actionUtils 和使用他们为 v.1 提供的那个对我有用。
希望对以后的人有所帮助