在Vogels.js中处理get调用的空值

时间:2016-02-25 00:13:13

标签: node.js amazon-dynamodb vogels

我使用Vogel.js连接到Amazon DynamoDB。这很棒,不过我遇到的一件事就是打电话,比如

MyEntity.get({ my_key: keyValue }, callback);
如果没有结果,

将返回null,否则将返回包装器对象。

如果我只想将MyEntity作为对象阅读,那么在我的回调中我似乎必须这样做

const myEntityAsAnObject = queryResult.get();

然而,如果没有结果,这将抛出。所以我在做get之前必须做一些空检查。我可以使用lodash或其他东西,但我想知道 - 有更好的方法吗?

之类的东西
MyEntity.getAsObject({ my_key: keyValue }, callback);

总会返回未包装的对象吗?

1 个答案:

答案 0 :(得分:0)

我能想到的最不优雅的事情是更高阶的函数包装器:

function attrs(callback) {
  return function attrsInner(error, model) {
    callback(error, model && model.get())
  }
}

MyEntity.get({ my_key: keyValue }, attrs(callback));

您也可以考虑以类似的方式修补vogels模型类原型,但我认为这会违反维护代码的人的最小惊喜原则。