Node.js за начинаещи: описание, ръководство, функции

Node.js е среда за внедряване на JavaScript, вградена в версията на JS V8 двигателя от Chrome. Платформата Node.js за начинаещи използва управлявани събития, не блокира I /O модела, което го прави лесен и ефективен. Пакетна екосистема Node.js е най-голямата екосистема с отворен код в света. Проектът е подкрепен от Фондация Node.js. Вноските, политиките и емисиите се наблюдават по модела на отворено управление.

Node.js за начинаещи: определение

Node.js е платформа за разработка с отворен код за изпълнение на JavaScript код на сървърната страна. Node е полезен за разработване на приложения, които изискват постоянна връзка от браузъра към сървъра. Често се използва за приложения в реално време, като чат, новини и push съобщения.



Node.js е проектиран да работи на специален HTTP сървър и да използва един поток с един процес за единица време. Началото на Node.js се основава на събития и се изпълнява асинхронно. Кодът, създаден на тази платформа, не съответства на традиционния модел на получаване, обработка, изпращане, изчакване и получаване. Вместо това, възел третира входящите заявки в стека от постоянни събития, изпраща малки заявки един по един и не получава отговори. Node.JS Книгите за начинаещи съдържат много данни за прехода от основните модели, които изпълняват по-големи, сложни процеси и едновременно изпълняват множество нишки. Всеки от тях чака техния отговор предипродължете напред.


Началото на Node.js - javascript

Node се основава на javascript, така че разбирането на работата на тази платформа е невъзможно без екскурзията в JS. Node.js за начинаещи ви дава много въвеждаща информация за езика за програмиране, на който се основава тази платформа. javascript - това се интерпретира в програмния език на Microsoft или скриптове от Netscape. Той е подобен на възможностите на Microsoft Visual Basic, Sun Tcl, Perl от UNIX и REXX от IBM. JavaScript скриптовите езици са по-лесни и по-бързи за кодиране, отколкото по-структурирани и компилирани, като C и C ++. Скриптовите езици обикновено отнемат повече време от компилацията, но са много полезни за кратки програми. javascript се използва за проектиране на уебсайт за изпълнение на задачи като автоматично променяне на форматираната дата на уеб страница. Това е причината свързаната страница да се показва в изскачащия прозорец. При промяна на текстово или графично изображение, javascript използва същите идеи като Java (компилиран обектно-ориентирано програмиране, извлечено от C ++).

Характерните особености на JS

javascript се използват често в уеб разработки. Първоначално е разработен от Netscape като инструмент за добавяне на динамични и интерактивни елементи към уеб сайтове. Въпреки че javascript е зависим от Java, синтаксисът е по-сходен с C и се основава на ECMAScript, скриптов език, разработен от Sun Microsystems. javascript е скриптов език от страна на клиента. Това означава, че изходният код се обработва от уеб браузъра на клиента, а не от уеб сървъра. Функциите могат да започнат след изтегляне на уеб страница, без да се свържете със сървъра.Например, функцията javascript може да провери уеб формуляра, преди да го изпрати, за да се увери, че всички необходими полета са пълни. Кодът може да издаде съобщение за грешка преди всяка информация да бъде предадена на сървъра.
Подобно на сървърните скриптови езици, като PHP и ASP, javascript кодът може да бъде поставен навсякъде в HTML страницата в мрежата. Въпреки това HTML показва само изходния код на сървъра, а кодът на JavaScript остава напълно видим в източника на уеб страницата. Може да се намери и в отделен .JS файл, който може да се разглежда в браузъра.

Примерен код

По-долу е даден пример за основната функция на javascript, която добавя две числа. Функцията се извиква с параметри 7 и 11. Ако кодът по-долу е включен в HTML на уеб страницата, той показва текста "18" в полето за предупреждение. Функциите на javascript могат да бъдат извиквани в тагове Популярността на javascript на приложенията се разраства бързо през последните няколко години и Node.js определено допринася за този растеж. Ако погледнем статистиката, ще видим, че има повече пакети Node в света, отколкото подобни данни на Ruby. Вторият фактор: Node пакетите растат по-бързо от Ruby, Python и Java. Какво я прави по-популярна от Rails и други алтернативи на Node.JS? Къде да започнем проучването? Самият възел е асинхронна платформа, базирана на събитие, изградено въз основа на Chrome engine на javascript и предназначено за създаване на мащабируеми мрежови приложения. С други думи, Node.js е javascript плюс C /C ++ във връзка с файловата система, стартирането на HTTP или TCP сървъри. Възелът е еднопоточен и използва модел на паралелизъм, базиран на цикъласъбития. Той не блокира процесите и не принуждава програмата да чака, а регистрира обратно извикване и позволява на приложението да продължи да работи. Това означава, че платформата може да обработва паралелни операции без множество нишки и е ефективно мащабирана. Съществуват значителни разлики между последователните езици и Node.js:
  • Node ви позволява да изпълнявате други задачи, които чакат за съобщението, когато отговорът е наличен;
  • приложението не буферира данните в паметта, а вместо това ги показва фрагментарно.
  • Въпреки че има други контури на системни събития (например библиотеката EventMachine в Ruby или Twisted на Python), има значителна разлика между тях и Node. В Node.JS всички библиотеки са създадени от нулата, за да бъдат неблокируеми, което не може да се каже за други.

    Опции за използване

    Node е идеален за приложения с I /O свързване, но не толкова добри за приложения с тежък процесор. Отличен пример са приложенията в реално време (DIRT), едно страници, JSON API и приложения за стрийминг.

    Node (NPM)

    Node официалният мениджър на пакети е отговорен за по-голямата част от успеха си с мениджъра на пакет, който идва с него. Предимства на този инструмент:
  • определя локално, а не глобално, зависимостите на приложенията;
  • едновременно обработва няколко версии на един и същ модул;
  • Можете да зададете архива или git хранилища като зависимости;
  • Много е лесно да публикувате собствения си модул в регистъра на НПМ.
  • Инсталиране на Node.js

    За начинаещи има официалниИнсталаторите за Node на Windows и OS X, също предостави възможност за инсталиране чрез пакет мениджър. За да тествате потребителския код с различни версии на възела, се използва NVM (Node Version Manager). С този инструмент можете да използвате няколко версии на сайта, инсталирани в системата и лесно да превключвате между тях. В следващите няколко реда ще видим как да инсталираме NVM в Ubuntu.
    Първо, трябва да се уверим, че нашата система има компилатор C ++: $ sudo apt-get update $ sudo apt-get install build-essential libssl-dev След като можем да копираме и поставим еднолиния инсталатор за NVM в терминала : $ curl https://raw.githubusercontent.com/creationix/nvm/v0131/install.sh | хит NVM трябва да бъде правилно инсталиран, затова излизаме от системата и се саморегулираме, за да се уверим, че всичко е правилно. Въведете командата: $ nvm Ако няма грешки при въвеждане, това означава, че всичко е наред. Сега можем да преминем към реалната инсталация на Node и NPM. Резултатът от командния ред трябва да изглежда така: $ nvm install v01031 ##################################### ############################# 1000% Сега и двата възела и npm трябва да са налични в терминала: $ node -v & amp; & amp; & amp; npm -v v01031 1423 Сега трябва да конфигурирате Node.JS да стартира по подразбиране с командата в терминала: $ nvm псевдоним по подразбиране 01031 Можем да инсталираме други версии на Node както преди и да превключваме между тях чрез командата nvm use: $ nvm install v0810 Ако не знаете кои версии са инсталирани на вашата система, просто напишете nvm-list. Този инструмент ще ви покаже пълен списък, както и текущи и версии, например: списък $ nvm v063 v0612 v0614 v0619 v077 v078 v079 v086 v0811v0103 v01012 v01015 v01024 v01024 v0119 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01024 v01023 v01024

    Модули

    Урокът Node.JS за начинаещи Java или Python предлага използването на функцията за импортиране за изтегляне на други библиотеки, докато PHP и Ruby не изискват това. Node реализира интерфейса на CommonJS за модули. Можете да изтеглите и други варианти, като използвате ключовата дума require. Например, може да ни трябват някои от нашите собствени модули: var http = require ('http'); може dns = require ('dns'); Можем също да извикаме относителни файлове: var myFile = require ('./myFile'); //download myFile.js За да инсталирате NPM модули, потърсете ги на уебсайт или в Github. Синтаксисът за локално инсталиране на модула е доста прост: # където express === името на модула $ npm install express

    Callback

    В асинхронното програмиране не връщаме стойността, когато функциите се изпълняват, а вместо това използваме начина за продължаване на прехода (CPS). С този стил асинхронната функция извиква обратно извикване (функцията обикновено се предава като последен аргумент), за да продължи програмата, след като е завършена. По-долу е даден пример за намиране на IPv4 адрес за домейн: var dns = require ('dns'); dns.resolve4 ('www.google.com', функция (грешка, адреси) {if (err) throw err; console.log ('address:' + JSON.stringify (address)};}); Преминахме обратно извикване (вградена анонимна функция) като втори асинхронен аргумент dns.resolve4. След като async функцията е готова, тя ще се обади, като продължи изпълнението на програмата.

    Събития

    В Ръководството за начинаещи, Node.JS осигурява стандартен шаблон за обратно извикване, който работи добреслучаи на употреба, когато искаме да получаваме съобщения, когато асинхронната функция е завършена. Съществуват обаче ситуации, които изискват уведомяване за различни събития, които се случват едновременно. Нека да разгледаме този примерен код с IRC клиент: var irc = require ('irc'); може клиент = нов irc.Client ('irc.freenode.net', 'myIrcBot', {channels: ['# sample-channel']})); client.on ('error', функция (съобщение) {console.error ('error:', message);}); client.on ('connect', function () {console.log ("свързан към irc сървър");}); client.on ("съобщение", функция (от, до, съобщение) {console.log (от + '= & gt;' + до + ':' + съобщение);}); client.on ('pm', функция (от, съобщение) {console.log (от + '= & gt; ME: + съобщение);}).
    В горния пример се занимаваме с три типа събития:
  • събитие за свързване се издава, когато клиентът се свърже успешно с IRC сървъра;
  • в случай на грешка се задейства събитие за грешка;
  • съобщения и събития pm, избрани за входящи съобщения.
  • Горните събития правят тази ситуация идеална за използване на шаблона на EventEmitter. Шаблонът EventEmitter позволява на разработчиците да освободят събитие, за което потребителите могат да се абонират, ако се интересуват от него. Този шаблон може да е запознат с браузъра, където се използва за присъединяване на манипулатори на събития. Node има клас EventEmitter в ядрото, който можем да използваме, за да създадем собствени EventEmitter обекти. Нека се опитаме да създадем клас MemoryWatcher, който наследява EventEmitter и генерира два вида събития:
  • редовни интервални данни, представляващи използване на паметта в байтове;
  • Събитие за грешка, ако паметта надвишава определена граница.
  • Така че, Node не е уеб сървър, а един от начините за създаване на кодкомпютър. Това е среда за изпълнение на javascript.

    Свързани публикации