Полный набор пакетов для разработки с помощью NodeJS

от автора

Начал изучать NodeJS. Нигде не нашел актуальный стек библиотек (технологий) применяемых в node. Поэтому решил сам составить список.

Внимание: не все из предложенных пакетов я успел испытать. Может быть опытный хабрачитатель сможет предложить варианты по лучше. Подбирал пакеты по рекомендациям в блогах. Смотрел на описания, на репозиторий в Github (stars, forks).

Инсталлятор пакетов

npm
Менеджер пакетов для node. Устанавливается вместе с node (в последних версиях так точно).
Аналог в Ruby: Rubygems+Bundler. Аналог в PHP: Composer.

Поиск пакетов

Официальный регистр. Не официальные: npmsearch, packagefinder, nipster

Веб стек технологий

Веб-сервер

connect.
Connect это расширяемый HTTP сервер фреймворк для Node, с поддержкой высокопроизводительных плагинов так же известных как middleware.
Список встроенных и трете сторонних плагинов.
Аналог в Ruby: Rack.

Веб-фреймворк

express
Express минималистичный гибкий node фреймворк для веб приложений, предоставляющий широкий набор фич для построения одно-, много- страничных и гибридных веб приложений.
Подборка материалов для изучения
Аналог в Ruby: Sinatra. Аналог в PHP: Silex.

Есть еще geddy. Вроде бы это аналог Rails. Но что это за зверь не знаю.

База

mongoose
Элегантное объектное моделирование для mongodb для node.
Документация и плагины
В других ЯП обычно в этом месте встречается термин ORM (Object-relational mapping), но mongoose это ODM (Object-document mapping). Конечно такое бывает не только в node, например в Ruby есть mongoid.

Темплейты

Jade
Jade высокопроизводительный движок темплейтов для node, сильное влияние на который оказал Haml.
Документация, оф. документация
Аналог в Ruby: Haml.

Замена CSS

stylus
Выразительный, динамичный, надежный CSS
less
LESS расширяет CSS переменными, миксинами, операциями и функциями
Аналоги в Ruby: Sass, less.

Аутентификация

everyauth
Аутентификация и авторизация (по паролю, через facebook и т.п.) для ваших Connect и Express приложений.
Связка для mongoose и everyauth — mongoose-auth.
Аналоги в Ruby: OmniAuth.

Хранение сессий

connect-mongo
MongoDB в качестве хранилища сессий для Connect приложений

Email

Nodemailer
Nodemailer простой в использовании модуль для отправки электронной почты с помощью node (с использованием SMTP или Sendmail или Amazon SES) и Unicode поддерживается.

Хеширование паролей

bcrypt
Библиотека для хеширования паролей.

Валидация

node-validator
node-validator представляет собой библиотеку для проверки, фильтрация и санитизации строк.
Связка для node-validator и Express — express-validator

Логирование

winston
Мулти-транспортная асинхронная библиотека для логирования

log.io
Log.io позволяет просматривать потоки сообщений логов в едином пользовательский интерфейс.

Реалтайм (сокеты, pub-sub)

Сокеты

socket.io
Socket.IO стремится сделать realtime приложения возможными в любом браузере и мобильном устройстве, стирая различия между разными транспортными механизмами.

Redis

node_redis
Это полный клиент для Redis для node. Он поддерживает все Redis команды, в том числе многие недавно добавленные команды, как EVAL из экспериментальных бранчей Redis.

Тестирование

Фреймворк для тестирования

mocha
Mocha это многофункциональным тестовый JavaScript фреймворк, работающий и в node и в браузере, что делает асинхронное тестирование простым и веселым. Mocha тесты выполняются последовательно, обеспечивая гибкую и точную отчетность, обрабатывает не перехваченные исключения.

BDD style

should.js
should — выразительный, легко читаемый, не зависzobq от тестового фреймворка assertion библиотека для node.

HTTP моки

nock
Nock — библиотека HTTP моков и ожиданий(expectations) для node

Моки

sinonjs
Автономные тест «шпионы», заглушки и моки для JavaScript.

Покрытие

blanket
Плавное покрытия кода для JavaScript
Аналог Ruby: RCov

Симулирование браузера

zombie
Zombie.js легкий фреймворк для тестирования клиентского JavaScript кода в симулированной среде. Браузер не нужен.
Аналог Ruby: Capybara

Разработка

Дебаг

node-inspector
Node Inspector интерфейс отладчика для nodeJS использующий WebKit Web Inspector. Статья на Хабре

Горячая перезагрузка кода

nodemon
nodemon будет следить за изменениями файлов в каталоге, в котором nodemon был запущен, и если они изменятся, он будет автоматически рестартовать node приложение.
Альтернатива: supervisor

Дебаг + Горячая перезагрузка кода

nodev
Помогает с запуском и отладкой node приложений при разработке. nodev запускает node-inspector вместе с вашим приложением, и будет все перезагружать при изменении файлов.
nodev — форк nodemon.

Инспектор переменных

eyes
H настраиваемый инспектор значение для node
Аналог в Ruby: Awesome Print.

Утилиты

Управление потоком (Control-Flow)

step
Простая библиотека для управления потоком для node. Делает параллельное и последовательное исполнение, а также обработку ошибок безболезненным.

async
Async — модуль предоставляющий простые и мощные функции для работы с асинхронным JavaScript.

Сравнение популярных библиотек для управления потоками и еще список новых библиотек

Tools

underscorejs
Underscore это невероятно удобная JavaScript библиотека, этакий швейцарский нож для js-разработчика, набор функций-утилит, которые так привычны любителям Prototype.js (или Ruby). Однако, в отличие, от Prototype.js, underscore не модифицирует прототипы встроенных объектов JavaScript.

Монитор процесса

forever
Простой инструмент для обеспечения того, чтобы данный скрипт работает непрерывно (т.е. вечно).

HTTP клиент

request
Request самый простой способ делать HTTP-запросы.

Построение консольных приложений

Цвета в консоли

colors
colors.js — Цвета и стили в консоли для вашего node приложения.

Для написания консольных приложений

commander.js
Полноценное решение для командной строки для node приложений

node-optimist
Optimist библиотека для парсинга опций

Coffescript

coffee-script
Удобно будет разрабатывать вместе с nodemon

Немного магии вместо послесловия

Не могу не упомянуть про meteor
Метеор — платформа с открытым исходным кодом для построения высококачественных веб приложений в мгновения ока, независимо от того опытный вы разработчик или только начинаете.
Обязательно посмотрите скринкасты: 1, 2. Или почитайте, что пишут про метеор на Хабре.
Ближайшие конкуренты: derby, socketstream

ссылка на оригинал статьи http://habrahabr.ru/post/165017/


Комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *