За начинаещи, JavaScript

Node.js за начинаещи

В тази статия ще разгледам основните принципи на Node.js, неговите плюсове и минуси и ще ви покажа как да започнете. Но преди да започнете да работите с Node.js, препоръчително е да разберете разликата между Node.js и традиционните езици от страна на сървъра (PHP, Python, Ruby).

Асинхронно програмиране

Надявам се, че сте запознати с асинхронното програмиране. Каквото и да се каже, това е ядрото на Аякс. Цялата функционалност на основния модул в Node.js е асинхронна. Следователно всички функции, които обикновено блокират нишката на други езици в Node.js, вместо това работят във фонов режим. Това е най-важното нещо за разбиране на Node.js. Например, ако четете файл, тогава трябва да бъде посочена функция, която ще бъде изпълнена след приключване на четенето.

Вие ще направите всичко!

Node.js е само рамка, така че цялата работа ще трябва да се извърши ръчно. Node.js дори няма HTTP сървър по подразбиране! И това е тъжно, но Node.js печели със своите високопроизводителни уеб приложения. Само един скрипт обработва всички клиентски връзки. Това решение значително намалява количеството ресурси, използвани в приложението. Например, тук е кодът за просто приложение Node.js.

И тук е неговият PHP еквивалент:

Следващата таблица сравнява времето за изпълнение на двата примера.

И двата примера бяха изпълнени в командния ред, така че няма забавяне при стартиране на уеб сървъра. Проведох всеки тест 10 пъти и взех средната стойност. PHP е по-бърз при малък брой итерации, но това предимство бързо изчезва, тъй като броят на итерациите се увеличава. Когато завърших всички тестове, PHP беше с 93% по-бавен от Node.js.

Node.js е бърз, но има няколко неща, които трябва да знаете, за да го използвате правилно.

Node.js е изграден върху модулна архитектура, за да улесни изграждането на сложни приложения. Модулите са като библиотеки в C или единици в Pascal. Всеки модул съдържа набор от функции, които са свързани с "темата" на този модул. Например http модулът съдържа функции, специфични за HTTP. Node.js също така съдържа няколко модула: за работа с файловата система, създаване на HTTP и TCP/UPD сървъри и т.н.

Модулът е свързан с помощта на функцията require ():

Функцията приема името на модула като вход. След това Node.js проверява папката node_modules в директорията на приложението и търси папка с име http. Ако Node.js не намери директорията node_modules или http модула вътре в тази директория, тогава тя ще се позовава на глобалния кеширан модул. Вместо име, можете да предадете относителна или абсолютна пътека към модула във функцията require ():

Модулите капсулират парчета код. Кодът в модула е предимно личен. Това означава, че функциите и променливите, декларирани в модул, са налични само в модула. Но Node.js ви позволява да създавате публични функции или/и променливи. За това е отговорен обектът за износ. Пример:

Този пример създава PI променлива, която може да се използва само вътре в модул. Следващите 2 функции създават обекта за експортиране. Тези функции са достъпни извън модула, защото са дефинирани чрез обекта за експортиране. В резултат на това PI променливата е напълно защитена от външни смущения. По този начин функциите area и cercumference ще се държат както трябва (в зависимост от стойността на параметъра r).

Глобален обхват

Разбира се, преди да пишете и стартирате приложения с Node.js, трябва да го инсталирате. Можете да изтеглите инсталационна програма за Windows или OS X от nodejs.org. За Linux можете да използвате всеки мениджър на пакети. За да инсталирате Node.js, трябва да отворите командния ред и да въведете:

Node.js е в хранилищата на sid; можете да ги добавите към списъка с източници:

Инсталирането на sid пакети на по-стари системи може да повреди вашата система. Следователно след инсталацията е препоръчително да премахнете /etc/apt/sources.list.d/sid.list