Обработка нулей при получении звонков в 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 подобным образом, но я думаю, что это нарушило бы принцип наименьшего удивления для тех, кто поддерживает ваш код.

Другие вопросы по тегам