Как стать автором
Обновить

Autodafé

Время на прочтение3 мин
Количество просмотров1.5K
Autodafe — node.js фреймворк для разработки веб приложений

Содержание статьи может описывать неактуальный код. У фреймворка уже давно свой сайт autodafe.ws

Самые вкусные плюшки из коробки:


  • архитектура: MVC + подключаемые модули
  • Mysql ORM (ActiveRecord с поддержкой отношений, асинхронное подобие того, что предлагает Yii framework для PHP )
  • HTTP сервер
  • WebSockets ( обертка для socket.io )
  • удобное перенаправление запросов и человеко понятные УРЛ
  • управление пользователями
    • аутентификация и авторизация, сессии
    • система управления правами ролей пользователей
  • почта
  • логирование в консоль, фс и на почту
  • шаблонизатор

Ложка дегтя:


  • очень малая часть задокументирована
  • задокументированная часть плохо задокументирована
  • плохо задокументированная часть задокументирована только на русском языке
  • тестами покрыт не весь фреймворк



Hello world



Далее я опишу процесс создания приложения, которое будет отдавать всего одну страницу при заходе на корень сайта и 404 ошибку в остальных случаях. Основная цель — немного познакомить читателей с организацией приложения в Autodafe.

Шаг 1. Подготавливаем файловую структуру.



Да, сейчас этот шаг не автоматизирован.

Назовем директорию для проекта hello_world, что в ней должно быть для самого простого приложения:

/hello_world
  /config          здесь будем хранить конфигурационные файлы
    /main.js       для начала хватит одного
  /controllers     сюда будем складывать контроллеры, определяющие логику нашего незаурядного приложения
    /site.js       единственный контроллер с единственным действием для единственной страницы
  /views           место для вьюшек
    /index.html    вьюшка главной страницы
  /index.js        входной скрипт


Шаг 2. Устанавливаем Autodafe



cd hello_world
npm install autodafe


Обычно всё проходит достаточно гладко )) ( тестировалось на fedora, mint )

Шаг 3. Файл за файлом


Входной скрипт index.js


В нем мы просто подключаем конфигурационный файл, autodafe, а также создаем и запускаем приложение.

var config   = require( './config/main' );
var autodafe = require( 'autodafe' );

autodafe.create_application( config ).run();


Конфигурационный файл main.js



module.exports = {

  // Название приложения ( пока что используется только для логирования )
  name : 'hello_world',

  // Корневая директория приложения, в ней по умолчанию ищутся директории с моделями, контроллерами, вьюшками,
  // компонентами, а также относительно нее задаются другие пути в конфигурационном файле
  base_dir : require('path').join( __dirname, '..' ),

  // Параметры приложения, которые доступны в любом месте приложения через функциию Application.get_param
  params : {
    your_name : 'Andrey' // имя которое мы будем выводить на нашей страничке
  },

  // Настройки компонента отвечающего за перенаправление запросов и генерацию запросов
  router : {
    rules   : {
      '/' : 'site.index'
    }
  },

  // Настройка подключаемых компонентов
  components : {

    // http сервер
    http        : {
      port : 3000
    }
  }
};


Контроллер site.js



 // наследуемся от Controller
module.exports = Site.inherits( global.autodafe.Controller );

/**
 * Единственный в данном приложении контроллер, который и отвечает за логику работы приложения 
 */
function SiteController( params ) {
  this._init( params );
}

/**
 * Главная страница сайта. Этот метод указан в секции router.rules конфигурационного файла для корня сайта
 */
SiteController.prototype.index = function ( response, request ) {
  // автоматически найдет представление index.html и отошлет его
  response.send({
    name : this.app.params['your_name' ]
  } );
};


И наконец наша вьюшка index.html


Единственное на что в ней надо обратить внимание это параметр {name} переданный из контроллера. Для рендеринга autodafe использует dust
<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  <title>Autodafe hello world</title>
</head>
<body>
  <h1>Hello {name}!</h1>
</body>
</html>


Запускаем


node index.js

и заходим на localhost:3000 в Вашем браузере

Где узнать про фреймворк подробнее


Сайт autodafe.ws
Исходный код на github: autodafe, там есть 3 небольшие демки + в файле common_config.js можно посмотреть пример настройки приложение с максимальным использованием всех компонентов
Приследуйте фреймворк в твиттере @node_autodafe

Если желаете принять участие в разработке или любым способом помочь в развитии фреймворка — пишите в личку или на jifeon at gmail.com
Теги:
Хабы:
+27
Комментарии51

Публикации

Истории

Работа

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн