Autodafe — node.js фреймворк для разработки веб приложений
Содержание статьи может описывать неактуальный код. У фреймворка уже давно свой сайт autodafe.ws
Далее я опишу процесс создания приложения, которое будет отдавать всего одну страницу при заходе на корень сайта и 404 ошибку в остальных случаях. Основная цель — немного познакомить читателей с организацией приложения в Autodafe.
Да, сейчас этот шаг не автоматизирован.
Назовем директорию для проекта hello_world, что в ней должно быть для самого простого приложения:
Обычно всё проходит достаточно гладко )) ( тестировалось на fedora, mint )
В нем мы просто подключаем конфигурационный файл, autodafe, а также создаем и запускаем приложение.
Единственное на что в ней надо обратить внимание это параметр {name} переданный из контроллера. Для рендеринга autodafe использует dust
и заходим на localhost:3000 в Вашем браузере
Сайт autodafe.ws
Исходный код на github: autodafe, там есть 3 небольшие демки + в файле common_config.js можно посмотреть пример настройки приложение с максимальным использованием всех компонентов
Приследуйте фреймворк в твиттере @node_autodafe
Если желаете принять участие в разработке или любым способом помочь в развитии фреймворка — пишите в личку или на jifeon at gmail.com
Содержание статьи может описывать неактуальный код. У фреймворка уже давно свой сайт 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
