Эволюция JavaScript с каждым годом предоставляет веб-разработчикам все большее количество инноваций. Один из наиболее интересных и популярных инструментов для создания легко масштабируемых сетевых приложений является Node js, основанный на движке V8 и превращающий JavaScript из узкоспециализированного языка в язык общего назначения. Node.js добавляет возможность JavaScript взаимодействовать с устройствами ввода-вывода через свой API (написанный на C++), подключать другие внешние библиотеки, написанные на разных языках, обеспечивая вызовы к ним из JavaScript-кода.
Прежде всего, Node.js отличается от классического JavaScript тем, что исполняемый код выполняется на стороне сервера а не на стороне браузера. Кроме того, Node.js вместо традиционного параллелизма на основе потоков предлагает асинхронный ввод-вывод, управляемый событиями. Производительность в такой системе гораздо выше, чем при использовании многопоточной модели. Node.js идеально подходит для веб-приложений, которые не выполняют сложных вычислений, но к которым происходят частые обращения: чтение дисков, подключение к базе данных, веб-сервисы.
Цель данной книги - быстро овладеть основами Node.js, помочь вам начать разработку приложений и научить всему, что необходимо знать о "продвинутом" JavaScript.
Evolyutsiya JavaScript s kazhdym godom predostavlyaet veb-razrabotchikam vse bolshee kolichestvo innovatsiy. Odin iz naibolee interesnykh i populyarnykh instrumentov dlya sozdaniya legko masshtabiruemykh setevykh prilozheniy yavlyaetsya Node js, osnovannyy na dvizhke V8 i prevrashchayushchiy JavaScript iz uzkospetsializirovannogo yazyka v yazyk obshchego naznacheniya. Node.js dobavlyaet vozmozhnost JavaScript vzaimodeystvovat s ustroystvami vvoda-vyvoda cherez svoy API (napisannyy na C++), podklyuchat drugie vneshnie biblioteki, napisannye na raznykh yazykakh, obespechivaya vyzovy k nim iz JavaScript-koda. Prezhde vsego, Node.js otlichaetsya ot klassicheskogo JavaScript tem, chto ispolnyaemyy kod vypolnyaetsya na storone servera a ne na storone brauzera. Krome togo, Node.js vmesto traditsionnogo parallelizma na osnove potokov predlagaet asinkhronnyy vvod-vyvod, upravlyaemyy sobytiyami. Proizvoditelnost v takoy sisteme gorazdo vyshe, chem pri ispolzovanii mnogopotochnoy modeli. Node.js idealno podkhodit dlya veb-prilozheniy, kotorye ne vypolnyayut slozhnykh vychisleniy, no k kotorym proiskhodyat chastye obrashcheniya: chtenie diskov, podklyuchenie k baze dannykh, veb-servisy. TSel dannoy knigi - bystro ovladet osnovami Node.js, pomoch vam nachat razrabotku prilozheniy i nauchit vsemu, chto neobkhodimo znat o "prodvinutom" JavaScript.