Javascript 如何比较JSON对象和水线模型实例?
注意:我也在水线回购协议上为此打开了一个解决方案,但没有比我的解决方案更简单的解决方案 我有一个具有所有默认属性的用户模型(例如,Javascript 如何比较JSON对象和水线模型实例?,javascript,json,node.js,sails.js,waterline,Javascript,Json,Node.js,Sails.js,Waterline,注意:我也在水线回购协议上为此打开了一个解决方案,但没有比我的解决方案更简单的解决方案 我有一个具有所有默认属性的用户模型(例如,createdDate,modifiedDate)和一些自定义模型,如emailAddress,password(在toJSON()中被抑制),以及与其他模型的一些附加关联 将由JSON格式的用户模型实例组成的控制器响应与水线模型实例进行比较的正确方法是什么 例如,此解决方案的工作原理如下: request .get('/user/1') .end(funct
createdDate
,modifiedDate
)和一些自定义模型,如emailAddress
,password
(在toJSON()
中被抑制),以及与其他模型的一些附加关联
将由JSON格式的用户模型实例组成的控制器响应与水线模型实例进行比较的正确方法是什么
例如,此解决方案的工作原理如下:
request
.get('/user/1')
.end(function (err, res) {
expect(res.body).to.deep.equal(
JSON.parse(JSON.stringify( // Workaround for toJSON not stringifying dates
_.cloneDeep( // Workaround for associations being lost
testUser.toJSON() // `testUser` is a Waterline model instance that should be equivalent to the requested data (`/user/1`)
)
))
);
done();
});
但我试过的其他方法几乎都不起作用;要么关联丢失(通过cloneDeep()
解决此问题),要么字符串化日期正在与日期对象进行比较(通过JSON.parse(JSON.stringify())
解决此问题)
有没有更好的方法将JSON与水线模型实例进行比较?也许是某个内置的实用程序?使用它怎么样?不确定这是否必要,因为Waterline已经定义了一次模式,它必须已经具有执行此操作所需的逻辑,我只是还没有找到它。