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

Handling nulls on get calls in Vogels.js

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

这样的电话
MyEntity.get({ my_key: keyValue }, callback);
如果没有结果,

将 return 为 null,或者 return 一个包装器对象。

如果我只想将 MyEntity 作为一个对象来读取,那么在我的回调中似乎我必须执行

const myEntityAsAnObject = queryResult.get();

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

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

那总是 return 展开的对象?

我能想到的最不优雅的东西是高阶函数包装器:

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

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

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