- PVSM.RU - https://www.pvsm.ru -
Начал изучать NodeJS. Нигде не нашел актуальный стек библиотек (технологий) применяемых в node. Поэтому решил сам составить список.
Внимание: не все из предложенных пакетов я успел испытать. Может быть опытный хабрачитатель сможет предложить варианты по лучше. Подбирал пакеты по рекомендациям в блогах. Смотрел на описания, на репозиторий в Github (stars, forks).
npm [1]
Менеджер пакетов для node. Устанавливается вместе с node (в последних версиях так точно).
Аналог в Ruby: Rubygems+Bundler. Аналог в PHP: Composer.
Официальный регистр [1]. Не официальные: npmsearch [2], packagefinder [3], nipster [4]
connect [5].
Connect это расширяемый HTTP сервер фреймворк для Node, с поддержкой высокопроизводительных плагинов так же известных как middleware.
Список встроенных [6] и трете сторонних [7] плагинов.
Аналог в Ruby: Rack.
express [8]
Express минималистичный гибкий node фреймворк для веб приложений, предоставляющий широкий набор фич для построения одно-, много- страничных и гибридных веб приложений.
Подборка материалов для изучения [9]
Аналог в Ruby: Sinatra. Аналог в PHP: Silex.
Есть еще geddy [10]. Вроде бы это аналог Rails. Но что это за зверь не знаю.
mongoose [11]
Элегантное объектное моделирование для mongodb для node.
Документация [12] и плагины [13]
В других ЯП обычно в этом месте встречается термин ORM (Object-relational mapping), но mongoose это ODM (Object-document mapping). Конечно такое бывает не только в node, например в Ruby есть mongoid [14].
Jade [15]
Jade высокопроизводительный движок темплейтов для node, сильное влияние на который оказал Haml.
Документация [16], оф. документация [17]
Аналог в Ruby: Haml.
stylus [18]
Выразительный, динамичный, надежный CSS
less [19]
LESS расширяет CSS переменными, миксинами, операциями и функциями
Аналоги в Ruby: Sass, less.
everyauth [20]
Аутентификация и авторизация (по паролю, через facebook и т.п.) для ваших Connect и Express приложений.
Связка для mongoose и everyauth — mongoose-auth [21].
Аналоги в Ruby: OmniAuth.
connect-mongo [22]
MongoDB в качестве хранилища сессий для Connect приложений
Nodemailer [23]
Nodemailer простой в использовании модуль для отправки электронной почты с помощью node (с использованием SMTP или Sendmail или Amazon SES) и Unicode поддерживается.
bcrypt [24]
Библиотека для хеширования паролей.
node-validator [25]
node-validator представляет собой библиотеку для проверки, фильтрация и санитизации строк.
Связка для node-validator и Express — express-validator [26]
winston [27]
Мулти-транспортная асинхронная библиотека для логирования
log.io [28]
Log.io позволяет просматривать потоки сообщений логов в едином пользовательский интерфейс.
socket.io [29]
Socket.IO стремится сделать realtime приложения возможными в любом браузере и мобильном устройстве, стирая различия между разными транспортными механизмами.
node_redis [30]
Это полный клиент для Redis для node. Он поддерживает все Redis команды, в том числе многие недавно добавленные команды, как EVAL из экспериментальных бранчей Redis.
mocha [31]
Mocha это многофункциональным тестовый JavaScript фреймворк, работающий и в node и в браузере, что делает асинхронное тестирование простым и веселым. Mocha тесты выполняются последовательно, обеспечивая гибкую и точную отчетность, обрабатывает не перехваченные исключения.
should.js [32]
should — выразительный, легко читаемый, не зависzobq от тестового фреймворка assertion библиотека для node.
nock [33]
Nock — библиотека HTTP моков и ожиданий(expectations) для node
sinonjs [34]
Автономные тест «шпионы», заглушки и моки для JavaScript.
blanket [35]
Плавное покрытия кода для JavaScript
Аналог Ruby: RCov
zombie [36]
Zombie.js легкий фреймворк для тестирования клиентского JavaScript кода в симулированной среде. Браузер не нужен.
Аналог Ruby: Capybara
node-inspector [37]
Node Inspector интерфейс отладчика для nodeJS использующий WebKit Web Inspector. Статья на Хабре [38]
nodemon [39]
nodemon будет следить за изменениями файлов в каталоге, в котором nodemon был запущен, и если они изменятся, он будет автоматически рестартовать node приложение.
Альтернатива: supervisor [40]
nodev [41]
Помогает с запуском и отладкой node приложений при разработке. nodev запускает node-inspector вместе с вашим приложением, и будет все перезагружать при изменении файлов.
nodev — форк nodemon.
eyes [42]
H настраиваемый инспектор значение для node
Аналог в Ruby: Awesome Print.
step [43]
Простая библиотека для управления потоком для node. Делает параллельное и последовательное исполнение, а также обработку ошибок безболезненным.
async [44]
Async — модуль предоставляющий простые и мощные функции для работы с асинхронным JavaScript.
Сравнение популярных библиотек для управления потоками [45] и еще список новых библиотек [46]
underscorejs [47]
Underscore это невероятно удобная JavaScript библиотека, этакий швейцарский нож для js-разработчика, набор функций-утилит, которые так привычны любителям Prototype.js (или Ruby). Однако, в отличие, от Prototype.js, underscore не модифицирует прототипы встроенных объектов JavaScript.
forever [48]
Простой инструмент для обеспечения того, чтобы данный скрипт работает непрерывно (т.е. вечно).
request [49]
Request самый простой способ делать HTTP-запросы.
colors [50]
colors.js — Цвета и стили в консоли для вашего node приложения.
commander.js [51]
Полноценное решение для командной строки для node приложений
node-optimist [52]
Optimist библиотека для парсинга опций
coffee-script [53]
Удобно будет разрабатывать вместе с nodemon [39]
Не могу не упомянуть про meteor [54]
Метеор — платформа с открытым исходным кодом для построения высококачественных веб приложений в мгновения ока, независимо от того опытный вы разработчик или только начинаете.
Обязательно посмотрите скринкасты: 1 [55], 2 [56]. Или почитайте, что пишут про метеор на Хабре [57].
Ближайшие конкуренты: derby [58], socketstream [59]
Автор: kotiara
Источник [60]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/24241
Ссылки в тексте:
[1] npm: https://npmjs.org/
[2] npmsearch: https://github.com/spion/npmsearch
[3] packagefinder: http://packagefinder1-enome.dotcloud.com/
[4] nipster: http://eirikb.github.com/nipster/
[5] connect: https://github.com/senchalabs/connect
[6] встроенных: https://github.com/senchalabs/connect#middleware
[7] трете сторонних: https://github.com/senchalabs/connect/wiki
[8] express: http://expressjs.com/
[9] Подборка материалов для изучения: http://stackoverflow.com/questions/8144214/learning-express-for-node-js
[10] geddy: https://github.com/mde/geddy
[11] mongoose: http://mongoosejs.com/
[12] Документация: http://mongoosejs.com/docs/guide.html
[13] плагины: http://plugins.mongoosejs.com/
[14] mongoid: http://mongoid.org/en/mongoid/index.html
[15] Jade: http://jade-lang.com/
[16] Документация: http://naltatis.github.com/jade-syntax-docs/
[17] оф. документация: https://github.com/visionmedia/jade#readme-contents
[18] stylus: http://learnboost.github.com/stylus/
[19] less: http://lesscss.org/
[20] everyauth: https://github.com/bnoguchi/everyauth
[21] mongoose-auth: https://github.com/bnoguchi/mongoose-auth
[22] connect-mongo: https://github.com/kcbanner/connect-mongo
[23] Nodemailer: https://github.com/andris9/Nodemailer
[24] bcrypt: https://github.com/ncb000gt/node.bcrypt.js/
[25] node-validator: https://github.com/chriso/node-validator
[26] express-validator: https://github.com/ctavan/express-validator
[27] winston: https://github.com/flatiron/winston
[28] log.io: http://logio.org/
[29] socket.io: http://socket.io/
[30] node_redis: https://github.com/mranney/node_redis
[31] mocha: http://visionmedia.github.com/mocha/
[32] should.js: https://github.com/visionmedia/should.js
[33] nock: https://github.com/flatiron/nock
[34] sinonjs: http://sinonjs.org/
[35] blanket: https://github.com/Migrii/blanket
[36] zombie: http://zombie.labnotes.org/
[37] node-inspector: https://github.com/dannycoates/node-inspector
[38] Статья на Хабре: http://habrahabr.ru/post/114825/
[39] nodemon: https://github.com/remy/nodemon
[40] supervisor: https://github.com/isaacs/node-supervisor
[41] nodev: https://github.com/ericvicenti/nodev
[42] eyes: https://github.com/cloudhead/eyes.js
[43] step: https://github.com/creationix/step
[44] async: https://github.com/caolan/async
[45] Сравнение популярных библиотек для управления потоками: http://dailyjs.com/2011/11/14/popular-control-flow/
[46] список новых библиотек: http://dailyjs.com/2012/02/20/new-flow-control-libraries/
[47] underscorejs: http://underscorejs.org/
[48] forever: https://github.com/nodejitsu/forever
[49] request: https://github.com/mikeal/request
[50] colors: https://github.com/Marak/colors.js
[51] commander.js: https://github.com/visionmedia/commander.js
[52] node-optimist: https://github.com/substack/node-optimist
[53] coffee-script: https://github.com/jashkenas/coffee-script
[54] meteor: http://meteor.com/
[55] 1: http://meteor.com/screencast
[56] 2: http://meteor.com/authcast
[57] на Хабре: http://habrahabr.ru/search/?q=%5BMeteor%5D&target_type=posts
[58] derby: http://derbyjs.com/
[59] socketstream: https://github.com/socketstream/socketstream
[60] Источник: http://habrahabr.ru/post/165017/
Нажмите здесь для печати.