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