muzruno.com

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

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

Node.js за начинаещи: дефиниция

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

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

Новите книги на Node.JS съдържат много данни за прехода от основните модели, които изпълняват по-големи, по-сложни процеси и едновременно изпълняват няколко теми. Всеки от тях очаква съответния отговор, преди да продължи.

Стартирайте Node.js - jаvascript

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

jаvascript се използва при разработването на уебсайт, за да изпълнява задачи като автоматично променяне на форматирана дата на уеб страница. Ето защо свързаната страница ще се покаже в изскачащ прозорец.

Когато променяте текст или графики, jаvascript използва същите идеи, както в Java (компилирано обектно-ориентирано програмиране, извлечено от C ++).възел начало js

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

jаvascript обикновено се използва при разработването на уеб сайтове. Първоначално бе разработена от Netscape като инструмент за добавяне на динамични и интерактивни елементи към уеб сайтове. Въпреки че jаvascript зависи от Java, синтаксисът е по-близък до C и се основава на ECMAScript - скриптовия език, разработен от Sun Microsystems.

jаvascript е скриптовият език на клиента. Това означава, че изходният код се обработва от уеб браузъра на клиента, а не от уеб сървъра. Функциите могат да бъдат стартирани след като уеб страницата е заредена, без да се свързва със сървъра. Например, функцията на jаvascript може да провери уеб формуляра преди да я изпрати, за да се увери, че всички полета са попълнени. Кодът може да даде съобщение за грешка, преди информацията всъщност да бъде предадена на сървъра.

Подобно на сървъра скриптови езици, като например PHP и ASP, кода на jаvascript може да бъде вмъкнат навсякъде в HTML страницата в мрежата. В HTML обаче се показва само изходът на кода на сървъра, а кодът на jаvascript остава напълно видим в източника на уеб страницата. Той може да се намери и в отделен .JS файл, който също може да се види в браузъра.

Примерни кодове

По-долу е даден пример за основна функция на jаvascript, която добавя две числа. Функцията се извиква с параметри 7 и 11. Ако следният код е включен в HTML на уеб страницата, тя показва на екрана "18" в полето за предупреждение.

Можете да се обадите на функциите на jаvascript в таговете

Предимства и важни нюанси

Едно от основните предимства на Node.js, според неговия създател Райън Дал, е, че не блокира I / O (I / O). Някои разработчици са много критични към Node.js и имайте предвид, че ако един процес изисква значителен брой цикли на процесора, приложението е блокирано. Това може да доведе до неизправност. Поддръжниците на модела Node.js твърдят, че времето за обработка на процесора е по-малко притеснително поради големия брой малки процеси, на които се основава кодът на сайта.

Популярността на приложенията на jаvascript се засилва през последните няколко години и Node.js определено допринася за този растеж. Ако разгледаме статистическите данни, ще видим, че в света има повече пакети възли от подобни Ruby данни. Вторият фактор: Пакетите възли нарастват по-бързо от Ruby, Python и Java.

Какво го прави по-популярен от Rails и други алтернативи на Node.JS? Как да започнем изследването? Самият възел е асинхронна платформа, базирана на събития, изградена на базата на jаvascript jаvascript двигателя и предназначена да създава мащабируеми мрежови приложения. С други думи, Node.js е jаvascript plus C / C ++ във връзка с файловата система, изпълняваща HTTP или TCP сървъри.

Възловата точка е с единична резба и използва модел на конкуренция въз основа на цикъла на събитието. Той не блокира процесите и не предизвиква чакането на програмата, но регистрира обратно повикване и позволява на приложението да продължи да работи. Това означава, че платформата може да обработва паралелни операции без множество теми на изпълнение и ефективно скали.

Има големи разлики между последователните езици и Node.js:

  • Възел ви позволява да изпълнявате други задачи, чакащи за известяване, когато има отговор;

  • Приложението не буферира данните в паметта, а вместо това ги извежда частично.

Въпреки че съществуват и други системи за обратна връзка (например библиотеката EventMachine в Ruby или Twisted в Python), има съществена разлика между тях и възел.

В Node.JS всички библиотеки са създадени от земята, за да не блокират, което не може да се каже за другите.книжен възел js за начинаещи

Използвайте случаи

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

Официалният мениджър на пакетите Node (NPM)

Възел дължи на голяма част от успеха си на пакета мениджър, който идва с него. Предимства на този инструмент:

  • той установява зависимостите на приложенията на местно равнище, а не глобално;

  • В същото време тя обработва няколко версии на същия модул;

  • можете да посочите tarballs или git repositories като зависимости;

  • Много е лесно да публикувате свой собствен модул в регистъра на NPM.

Инсталиране на Node.js

За начинаещи има официални инсталатори за възел в Windows и OS X и можете да инсталирате и чрез пакетен мениджър. За да тествате потребителския код с различни версии на възли, използвайте NVM (възел на мениджъра на версии).

С този инструмент можете да използвате няколко версии на възела, инсталирани в системата, и лесно да превключвате между тях. В следващите няколко реда ще видим как да инсталирате NVM в системата Ubuntu.възел js къде да започнете

Първо, трябва да се уверим, че нашата система има компилатор C ++:

$ sudo apt-get актуализация

$ sudo apt-get инсталирате build-essential libssl-dev

След това можем да копираме и вмъкнем инсталатора за един модул за NVM в терминала:

$ curl https://raw.githubusercontent.com/creationix/nvm/v0.13.1/install.sh | удар

NVM трябва да бъде инсталирана правилно, така че да излезем и да влезем, за да сме сигурни, че всичко е правилно. Въведете командата:

$ nvm

Ако по време на въвеждане не възникне грешка, това означава, че всичко е наред. Сега можем да продължим към действителното създаване на Node и NPM.

Резултатът от командния ред трябва да изглежда така:

$ nvm инсталирате v0.10.31

################################################## ################ 100,0%

Сега в терминала трябва да са налице и двете възли и npm:

$ node -v amp- amp- amp-npm -v

v0.10.31

1.4.23

Сега трябва да конфигурирате Node.JS да стартира по подразбиране с командата в терминала:

$ nvm псевдоним по подразбиране 0.10.31

Можем да инсталираме други версии на възела, както преди, но да ги превключваме с помощта на командата nvm use:

$ nvm install v0.8.10



Ако не знаете кои версии са инсталирани на вашата система, просто въведете nvm-list. Този инструмент ще ви покаже пълния списък, както и текущите и стандартните версии, например:

списък $ nvm

v0.6.3 v0.6.12 v0.6.14 v0.6.19 v0.7.7 v0.7.8 v0.7.9 v0.8.6 v0.8.11 v0.10.3 v0.10.12 v0.10.15 v0.10.21 v0.10.24 v0.11.9 ток: v0.10.24 по подразбиране -> v0.10.24възли урок за начинаещи

модули

Наръчникът Node.JS за начинаещи Java или Python предвижда използването на функцията за импортиране за зареждане на други библиотеки, докато PHP и Ruby не изискват това. Възел изпълнява интерфейса CommonJS за модули. Можете да заредите и други варианти, като използвате необходимата ключова дума.

Например, може да се нуждаем от някои от нашите собствени модули:

var http = изисква ("http");

var dns = изисква (`dns`);

Можем също така да извикаме относителни файлове:

var myFile = изискват (`./ myFile`) - // download myFile.js

За да инсталирате модули от NPM, търсете ги в уебсайта или в Github. Синтаксисът за локално инсталиране на модула е доста прост:

# where express === име на модула

$ npm install express

обратни извиквания

При асинхронно програмиране не връщаме стойности при изпълнение на функциите, а вместо това използваме стил на продължаване (CPS). С този стил асинхронната функция извиква обратно повикване (функция, която нормално преминава като последния аргумент), за да продължи програмата след приключването й.

По-долу е даден пример за намиране на IPv4 адреси за домейн:

var dns = изисква (`dns`);

dns.resolve4 ("google.com", функция (грешка, адреси) {

ако (err) хвърли грешка;

console.log (`адреси:` + JSON.stringify (адреси));

});

Предадохме обратната връзка (вградена анонимна функция) като втори аргумент към асинхронния dns.resolve4. След като функцията за синхронизация е готова, тя ще се обади отново, като продължи изпълнението на програмата.

събития

Ръководството за начинаещи на Node.JS въвежда стандартен модел за обратно извикване, който работи добре при случаи на използване, когато искаме да получаваме известия, когато свърши асинхронизационната функция. Има обаче ситуации, които изискват известяване на различни събития, които не се появяват едновременно.

Нека разгледаме това с пример за код с IRC клиент:

var irc = изискват ("irc");

var клиент = нов irc.Client ("irc.freenode.net", "myIrcBot", {

канали: [`# sample-channel`]

});

client.on ("грешка", функция (съобщение) {

console.error ("грешка:", съобщение);

});

client.on (`connect`, функция () {

console.log ("свързан към irc сървър");

});

client.on ("съобщение", функция (от, до, съобщение) {

console.log (от + `=>` + до + `:` + съобщение);

});

client.on (`pm`, функция (от, съобщение) {

console.log (от + `=> ME: + съобщение);

}).възел js праймер

В горния пример разглеждаме три вида събития:

  • събитието за връзка се издава, когато клиентът успешно се свърже с IRC сървъра;

  • събитието за грешка се задейства, ако възникне грешка;

  • съобщенията и събитията pm са избрани за входящи съобщения.

Горните събития правят тази ситуация идеална за използване на шаблона EventEmitter.

Шаблонът EventEmitter позволява на разработчиците да пускат събитие, на което потребителите могат да се абонират, ако се интересуват от него. Този шаблон може да е запознат с браузъра, където се използва за прикачване на манипулатори на събития.

Възелът има класове EventEmitter в ядрото, които можем да използваме, за да създадем собствени обекти EventEmitter. Нека се опитаме да създадем клас MemoryWatcher, който наследи EventEmitter и генерира два типа събития:

  • данни на редовни интервали, което представлява използването на памет в байтове;

  • събитие на грешка, ако паметта надхвърля определена граница.

Така че, възелът не е уеб сървър, това е един от начините за създаване на код на компютър. Това е средата за стартиране на jаvascript.

Споделяне в социалните мрежи:

сроден