Строим блог на Areto фреймворк

Модель фото

Класс Photo отвечает за работу с фотографиями в публичной части блога. Загрузка и обработка реализуются в модуле администрирования.

model/Photo.js

const Base = require('areto/db/ActiveRecord');
module.exports = class Photo extends Base {

  static getConstants () {
    return {
      TABLE: 'photo',
      SIZE_LARGE: 720,
      SIZE_MEDIUM: 360,
      SIZE_SMALL: 128
    };
  }

  getTitle () {
    return this.get('title') || '';
  }

  // place methods here
};
module.exports.init(module);
const path = require('path');

Метод getThumb отдает адрес, по которому находится превью указанного размера size. Адрес можно использовать для вывода фото в шаблоне: <img src="<%- photo.getThumb(128) %>" alt="<%- photo.getTitle() %>">. Остальные методы - это ссылки на getThumb с определенным размером превью.

model/Photo.js

 getLarge () {
  return this.getThumb(this.SIZE_LARGE);
}

getMedium () {
  return this.getThumb(this.SIZE_MEDIUM);
}

getSmall () {
  return this.getThumb(this.SIZE_SMALL);
}

getThumb (size) {
  return `photo/${size}/${this.get('filename')}`;
}