问题描述
我在feathers.js 应用程序中使用NeDB product 服务。 product.db 文件包含数字字段 categoryId。当我这样查询时:
http://localhost:3030/product?categoryId=17
没有结果。当我尝试按文本字段查询时:
http://localhost:3030/product?imageName=image.png
这个查询工作正常。
我在数据库文件中将 categoryId 字段类型从数字更改为字符串。现在通过 categoryId 查询工作正常。这种奇怪行为的原因是什么?
UPD:
我找到了原因。在羽毛应用程序中的钩子:
function beforeFind(ctx) {
console.log(ctx.arguments[0].query)
}
此代码显示比查询中的 categoryId 是字符串。它解决了
function beforeFind(ctx) {
const qr = ctx.arguments[0].query
if (qr.price) {
qr.price = +qr.price
}
}
现在按价格过滤就可以了。但是我认为这个解决方案不是很好。有没有更优雅的方法来解决这个问题?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)