在 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 原型,但我认为这会违反对维护您的代码的人来说最不意外的原则。
我正在使用 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 原型,但我认为这会违反对维护您的代码的人来说最不意外的原则。