1

我正在使用 Vogel.js 连接到 Amazon DynamoDB。太好了,但是我正在努力解决的一件事是这样的电话

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

如果没有结果,要么返回 null,要么返回一个包装对象。

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

const myEntityAsAnObject = queryResult.get();

但是,如果没有结果,这将抛出。因此,在获取之前我必须进行一些空值检查。我可以使用 lodash 或其他东西,但我想知道 - 有没有更好的方法来做到这一点?就像是

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

那将始终返回未包装的对象?

4

1 回答 1

0

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

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

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

您也可以考虑以类似的方式对 vogels 模型类原型进行猴子修补,但我认为这会违反维护您的代码的人的最小意外原则。

于 2016-02-26T20:36:14.713 回答