【发布时间】:2014-10-21 17:11:17
【问题描述】:
注意:我还在 Waterline 存储库上为此打开了一个 issue,但没有比我的解决方法更简单的解决方案。
我有一个包含所有默认属性的用户模型(例如createdDate、modifiedDate)和一些自定义属性,如emailAddress、password(在toJSON() 中被抑制)等以及一些其他关联与其他型号。
将由 JSON 格式的用户模型实例组成的控制器响应与 Waterline 模型实例进行比较的正确方法是什么?
例如,此解决方法有效:
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() 解决此问题)或字符串化日期与 Date 对象进行比较(JSON.parse(JSON.stringify()) 解决此问题)。
有没有更好的方法将 JSON 与 Waterline 模型实例进行比较?也许是一些内置的实用程序?
【问题讨论】:
标签: javascript json node.js sails.js waterline