我使用Vogel.js连接到Amazon DynamoDB。这很棒,不过我遇到的一件事就是打电话,比如
MyEntity.get({ my_key: keyValue }, callback);
如果没有结果,将返回null,否则将返回包装器对象。
如果我只想将MyEntity
作为对象阅读,那么在我的回调中我似乎必须这样做
const myEntityAsAnObject = queryResult.get();
然而,如果没有结果,这将抛出。所以我在做get之前必须做一些空检查。我可以使用lodash或其他东西,但我想知道 - 有更好的方法吗?
之类的东西MyEntity.getAsObject({ my_key: keyValue }, callback);
总会返回未包装的对象吗?
答案 0 :(得分:0)
我能想到的最不优雅的事情是更高阶的函数包装器:
function attrs(callback) {
return function attrsInner(error, model) {
callback(error, model && model.get())
}
}
MyEntity.get({ my_key: keyValue }, attrs(callback));
您也可以考虑以类似的方式修补vogels模型类原型,但我认为这会违反维护代码的人的最小惊喜原则。