Node.js
Материал из Xgu.ru
Node.js — платформа, построенная на основе JavaScript-движка V8 (движок Google Chrome), предназначенная для исполнения кода JavaScript вне браузера, в качестве web-сервера.
Как и вообще программы на JavaScript, программы для Node.js построены на основе понятия события (event) и цикла событий (event loop). Для того чтобы такой, основанный на событиях, подход мог работать, Node.js использует для ввода/вывода неблокирующие функции (библиотека с такими функциями входят в состав Node.js). В результате, почти всё, что делается в программе (по крайней мере всё, что касается ввода/вывода) пишется в асинхронном стиле.
Содержание |
[править] Асинхронное программирование
Большинство операций в Node.js являются неблокирующими. Это значит, что операция выглядит как создание запроса и создание обработчика на ответ.
Вы не говорите:
сделай это сделай то
Вы говорите:
начни делать это когда это будет готово: сделай то
В результате программы на node выглядят совершенно иначе.
(подробнее о модуле async)
Хорошее введение в async:
[править] Модули Node.js
Сила Node заключается не только в языке Javascript, не только в пронизывающей асинхронности, не только в грамотной реализации, но и в огромнейшем количестве модулей, которые формируют развитую экосистему web-программирования (и не только web, но главным образом web).
Сегодня насчитывается несколько десятков тысяч модулей Node.js (37 689 на npmjs.org в середине августа 2013).
Несколько наиболее известных модулей:
- Express — MVC-модуль для Node.js (как Ruby для Rails или Django для Python);
- Jade — язык шаблонов для Node.js;
- Backbone.js — MVC-фреймфорк для клиентских приложений;
- Socket.IO — библиотека для двухстороннего взаимодействия web-сервера и web-браузера (через WebSockets и другие механизмы);
Некоторые используются как в Node.js, так и в браузере:
- Async;
- Underscore — универсальная библиотека с множеством полезных функций, которые очень помогают на каждом шагу.
Для управления модулями используется программа/система npm.
Коллекции и поиск по модулям node.js:
- https://github.com/joyent/node/wiki/modules
- https://npmjs.org/
- http://nodetoolbox.com/
- http://eirikb.github.io/nipster/
- We open-sourced 90 node.js modules at Browserling! (англ.) — прикольная подборка node.js-модулей от Browserling
[править] Дополнительная информация
- Mixu's Node book. A book about using Node.js (англ.) — простая и понятная книга-введение в Node.js
[править] Socket.io
- Backbone.Js und Socket.IO (нем.) — простое и понятное введение в Socket.io
[править] Разное
- TJ Holowaychuk im Interview (нем.) — интервью с TJ Головайчуком, одним из самых продуктивных в мире разработчиков для Node.js