首页 > 解决方案 > Bookshelf 意外传递对象而不是值时执行奇怪的查询

问题描述

如果我发送正确的值,即它的 ID,我有一个执行得非常好的查询。但是,如果我由于某种原因最终错误地发送了一个对象,那么它只会为我的 ID 假定一些值并返回给我一个非常令人担忧的值。查询很简单:

Did.forge({id:user.did}).fetch()

我期望返回具有我发送的身份的正确值。但是发生的情况是,由于我不小心发送了一个对象,我得到了一个完全预期的其他值。我再次对此进行了测试并尝试发送:

{did:{test:'asdadad',hoho:'421141144124'}}

而不是这个

k981t452-2af6-90db-b169-f05b24907801

对象中的任何值都不是用户返回值的任何 id。

所以我关心的是了解会发生什么,因为如果我不能相信 ORM 在收到不应该收到的东西时返回 no user found,那么很难使用这个框架。那么我可以配置什么来建立更好的信任吗?

我创建了一个解释用例的要点:https ://gist.github.com/vongohren/e672da6d87143afe82837657df755d7b

这也存在一个现有问题,但它已关闭,但未得到正确解决和解释:https ://github.com/bookshelf/bookshelf/issues/1402

标签: javascriptnode.jsbookshelf.js

解决方案


推荐阅读