Обработка нулей при получении звонков в Vogels.js
Я использую Vogel.js для подключения к Amazon DynamoDB. Это здорово, однако я борюсь с тем, чтобы такой вызов, как
MyEntity.get({ my_key: keyValue }, callback);
либо вернет ноль, если результатов нет, либо вернет объект-оболочку.
Если я просто хочу прочитать MyEntity
как объект, кажется, что в моем обратном вызове я должен сделать
const myEntityAsAnObject = queryResult.get();
однако, это бросит, если не было никаких результатов. Итак, я должен сделать некоторую нулевую проверку, прежде чем я получу. Для чего я мог бы использовать lodash или что-то еще, но мне интересно - есть ли лучший способ сделать это? что-то вроде
MyEntity.getAsObject({ my_key: keyValue }, callback);
что всегда будет возвращать развернутый объект?
1 ответ
Наименее легкомысленная вещь, о которой я могу подумать, - это обертка функций более высокого порядка:
function attrs(callback) {
return function attrsInner(error, model) {
callback(error, model && model.get())
}
}
MyEntity.get({ my_key: keyValue }, attrs(callback));
Вы могли бы также подумать о том, чтобы обезьяна залатала прототип класса модели vogels подобным образом, но я думаю, что это нарушило бы принцип наименьшего удивления для тех, кто поддерживает ваш код.