Главная » JavaScript » Node js Web фреймворки
node js frameworks

11.12.2015 by Devjournal

Node js Web фреймворки

Node.js веб разработка набирает обороты, и уже многие веб-разработчики знакомы с ним или уже работают используя его. И вот теперь произошло объединение io.js и node.js, обновление версий не заставит себя ждать, пару раз в год и поддержка долгосрочных релизов (LTS).

Node.js позволяет писать по настоящему высоконагруженные сервисы. Но стоит учесть объективное количество использования фреймворков. Но для большинства задач нам нужны именно фреймворки, которые мы рассмотрим ниже.

Express.js

expressjs

Наиболее распространенный на сегодняшний день это Express.js, и кроме того, другие фрейморки были разработаны на его основе. Он аскетичен и имеет хорошую документацию, и требуется небольшое количество времени для ознакомления с ним.

Для знакомства с ним больше всего подходит гайд по базовому приложению из getting started и будет не лишним почитать доки по API фреймворка.

var express = require('express');
var router = express.Router();
 
// middleware specific to this router
router.use(function timeLog(req, res, next) {
console.log('Time: ', Date.now());
next();
});
// define the home page route
router.get('/', function(req, res) {
res.send('Birds home page');
});
// define the about route
router.get('/about', function(req, res) {
res.send('About birds');
});
 
module.exports = router;

Отличительной чертой фреймворка Express можно считать его минималистичный стиль, в это его достоинство и недостатки. С первого взгляда кажется, что ознакомиться с документацией и быстро создать свое веб-приложение получится быстро, обратная сторона медали это написание похожего кода во многих местах. Нужна некая автоматизация этих процессов. Нет встроенных инструментов для тестирования. Хотя это можно считать не минусами, а возможностями длякастомизации вашего приложения.

Sails.js

Поклонникам веб-фреймворка Ruby on Rails обязательно понравится Sails.js. Он позволяет как и Rails в короткие сроки развернуть готовое приложение с необходимым функционалом.

ORM система, поддерживающая такие базы данных как MySQL, Redis, PostgreSQL и MongoDB. Большие возможности работы со связями в моделях. Кроме того Sails автоматом связывает NoSQL и SQL базы данных. Генерируемый API. Широко поддерживается WebSockets. Имеет список многоразовых и декларативных политик безопасности. Использование Grunt в Sails дает возможность без проблем подключить CoffeeScript, Handlebars, LESS, SASS, Stylus, JST, Jade, Dust и прочие.

Команда:

sails generate api anyapi

создаст API который позволяет создавать, удалять, обновлять, искать, фильтровать, а так же содержит пагинацию и связи в БД.

Sails не имеет своего менеджера плагинов, но в наследии от Express использует концепцию middleware, и можно использовать все, что написано для Express

Как и многие фреймворки, Sails имеет инструменты для деплоя приложения на production. И к тому же умеет строить кластерную архитектуру, к примеру:

Sails.js server
....
/ Sails.js server \ / Database (e.g. Mongo, Postgres, etc)
Load Balancer Sails.js server Socket store (Redis)
\ Sails.js server / \ Session store (Redis)
....
Sails.js server

LoopBack

LoopBack — уже более функциональный фреймворк с внушительным количеством возможностей для разработки. Идеально подходит для больших проектов.

Есть свой менеджер процессов, умеющий собирать и развертывать проект, собирать кластерную структуру, имеет балансер нагрузки Nginx, и систему ведения логов.

Чтобы установить его, нужно запустить в рабочей папке:

$ slc arc

strongloop
Возможность быстрого создания моделей с привязкой к поддерживаемым базам данных.

С помощью конструктора генерируем модель:

$ slc loopback:model

Присваиваем название новой модели:

[?] Enter the model name: CoffeeShop

Производим выбор базы данных:

[?] Select the data-source to attach CoffeeShop to: (Use arrow keys)
❯ db (memory)

Указываем тип модели. PersistedModel — это базовый тип, имеющий доступ к базе данных.

[?] Select model's base class: (Use arrow keys)
Model
❯ PersistedModel
ACL
AccessToken
Application
Change
Checkpoint

Осталось указать, что модель использует REST.

[?] Expose CoffeeShop via the REST API? (Y/n) Y

Есть возможность сразу получить доступ к документации через браузер. Дописываем к URL /explorer и:

gs-first-api-explorer

StrongLoop и фреймворк LoopBack хорошо подходят для быстрого старта и имеют большие возможности для расширения своего функционала.

#javascript#node js#Обучение

Добавить комментарий

Your email address will not be published / Required fields are marked *