Node.JS

Node.js е време за изпълнение на JavaScript с отворени кодове, което работи на сървъри. От излизането си през 2009 г. тази платформа стана изключително популярна и играе много важна роля в областта на уеб разработката в наши дни.
За пълната статия на Node.JS ...

Показване на филтъра
Хостинг филтри
A2 Themes & Host Me Filter

Операционна система

Дисково пространство

RAM памет

Тип диск

Ядра на процесора

Вид

Trust Pilot Dream Host
Резултат - 9.7
Dream Host Logo
Dream Host

Мечта домакин

DreamObjects 40 GB
$0.95 /Месечно

Отзиви 3778

29 Купони

Местоположения на сървъра


Dream Host Servers in AshburnСъединени щати
Сравнете
Trust Pilot ICDSoft
Резултат - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - Europe
$8 /Месечно

Отзиви 233


Местоположения на сървъра


ICDSoft Servers in SofiaБългария ICDSoft Servers in BostonСъединени щати ICDSoft Servers in Hong KongХонг Конг
Сравнете
Trust Pilot ICDSoft
Резултат - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - USA
$8 /Месечно

Отзиви 233


Местоположения на сървъра


ICDSoft Servers in SofiaБългария ICDSoft Servers in BostonСъединени щати ICDSoft Servers in Hong KongХонг Конг
Сравнете
Резултат - 9
A2hosting Logo
A2hosting

A2hosting

Lite
$3.92 /Месечно

50 Купони

Местоположения на сървъра


A2hosting Servers in AmsterdamХоландия A2hosting Servers in MichiganСъединени щати A2hosting Servers in SingaporeСингапур
Сравнете
Trust Pilot Keliweb
Резултат - 9.8
Keliweb Logo
Keliweb

Keliweb

Prime
$5.51 /Месечно

Отзиви 453


Местоположения на сървъра


Keliweb Servers in MilanoИталия
Сравнете
Trust Pilot JustHostMe
Резултат - 9.4
JustHostMe Logo
JustHostMe

JustHostMe

Starter
$3.11 /Месечно

Отзиви 72


Местоположения на сървъра


JustHostMe Servers in United KingdomВеликобритания
Сравнете
Trust Pilot Dream VPS
Резултат - 8.6
Dream VPS Logo
Dream VPS

Dream VPS

STARTER
$3.75 /Месечно

Отзиви 7


Местоположения на сървъра


Dream VPS Servers in Hong KongХонг Конг Dream VPS Servers in Santa Clara Dream VPS Servers in New YorkСъединени щати Dream VPS Servers in LondonВеликобритания Dream VPS Servers in AmsterdamХоландия Dream VPS Servers in FrankfurtГермания Dream VPS Servers in IsraelИзраел
Сравнете
Trust Pilot Reseller Cube
Резултат - 8
Reseller Cube Logo
Reseller Cube

Reseller Cube

Basic USA
$5 /Месечно

Отзиви 4


Местоположения на сървъра


Reseller Cube Servers in RaleighСъединени щати
Сравнете
Trust Pilot Univa Host
Резултат - 8
Univa Host Logo
Univa Host

Домакин на Univa

E-ECONOMY
$2.99 /Месечно

Отзиви 3


Местоположения на сървъра


Univa Host Servers in GermanyГермания Univa Host Servers in United StatesСъединени щати
Сравнете
Trust Pilot OperaVPS
Резултат - 7.8
OperaVPS Logo
OperaVPS

OperaVPS

Linux 512MB
$7.99 /Месечно

Отзиви 3


Местоположения на сървъра


OperaVPS Servers in United KingdomВеликобритания OperaVPS Servers in AustriaАвстрия OperaVPS Servers in CanadaКанада OperaVPS Servers in DenmarkДания OperaVPS Servers in FranceФранция OperaVPS Servers in GermanyГермания OperaVPS Servers in ItalyИталия OperaVPS Servers in NetherlandsХоландия OperaVPS Servers in RomaniaРумъния OperaVPS Servers in United StatesСъединени щати
Сравнете
Trust Pilot L3Web Hosting
Резултат - 7.6
L3Web Hosting Logo
L3Web Hosting

L3Web хостинг

START UP
$1.99 /Месечно

Отзиви 2


Местоположения на сървъра


L3Web Hosting Servers in IndiaИндия L3Web Hosting Servers in MunichГермания L3Web Hosting Servers in MiamiСъединени щати L3Web Hosting Servers in SingaporeСингапур L3Web Hosting Servers in United KingdomВеликобритания
Сравнете
Trust Pilot Idea Stack
Резултат - 7.4
Idea Stack Logo
Idea Stack

Стек от идеи

LEVEL 1
$2 /Месечно

Отзиви 2


Местоположения на сървъра


Idea Stack Servers in SeattleСъединени щати
Сравнете
Trust Pilot Epic Host
Резултат - 7.4
Epic Host Logo
Epic Host

Епичен домакин

Cloud hosting
$2.37 /Месечно

Отзиви 1


Местоположения на сървъра


Epic Host Servers in New DelhiИндия Epic Host Servers in UnionСъединени щати
Сравнете
Trust Pilot itanets.co.uk
Резултат - 7
itanets.co.uk Logo
itanets.co.uk

itanets.co.uk

JSP HOSTING 1
$5.19 /Месечно

Отзиви 2

Сравнете
Trust Pilot Digital Ocean
Резултат - 3.8
Digital Ocean Logo
Digital Ocean

Цифров океан

$5 /mo
$5 /Месечно

Отзиви 214

38 Купони

Местоположения на сървъра


Digital Ocean Servers in IndiaИндия Digital Ocean Servers in New YorkСъединени щати Digital Ocean Servers in AmsterdamХоландия Digital Ocean Servers in LondonВеликобритания Digital Ocean Servers in TorontoКанада Digital Ocean Servers in Frankfurt am MainГермания Digital Ocean Servers in SingaporeСингапур
Сравнете
Резултат - 10
HOST PRO KE Logo
HOST PRO KE

HOST PRO KE

Host Pro Starter
$9.38 /Годишно


Местоположения на сървъра


HOST PRO KE Servers in GermanyГермания
Сравнете
Резултат - 9.4
Accu WebHosting Logo
Accu WebHosting

Accu WebHosting

Windows Personal Web Hosting
$2.99 /Месечно

19 Купони

Местоположения на сървъра


Accu WebHosting Servers in FranceФранция Accu WebHosting Servers in DenverСъединени щати Accu WebHosting Servers in MumbaiИндия Accu WebHosting Servers in AmsterdamХоландия Accu WebHosting Servers in Frankfurt am MainГермания Accu WebHosting Servers in SydneyАвстралия Accu WebHosting Servers in LondonВеликобритания Accu WebHosting Servers in PolandПолша Accu WebHosting Servers in CanadaКанада Accu WebHosting Servers in SingaporeСингапур
Сравнете
Резултат - 9
Be hostings Logo
Be hostings

Бъдете хостинги

StarterSSL
$3.36 /Месечно


Местоположения на сървъра


Be hostings Servers in BrusselsБелгия
Сравнете
Резултат - 4.3
Gear Host Logo
Gear Host

Водещ на предавки

CloudSite Hobby
$5 /Месечно


Местоположения на сървъра


Gear Host Servers in DenverСъединени щати
Сравнете
Резултат - 1
Mikro VPS Logo
Mikro VPS

Mikro VPS

VPS SSD 1
$4.39 /Месечно


Местоположения на сървъра


Mikro VPS Servers in BudapestУнгария
Сравнете
Резултат - 0
Simple Node Logo
Simple Node

Обикновен възел

OpenVZ - 256MB
$3 /Месечно

Сравнете

 

Node.js

 

 

Node.js е време за изпълнение на JavaScript с отворени кодове, което работи на сървъри. От излизането си през 2009 г. тази платформа стана изключително популярна и играе много важна роля в областта на уеб разработката в наши дни. Ако разгледаме броя на звездите, които даден проект е събрал на GitHub, като показател за популярност, тогава Node.js, който има повече от 50 000 звезди, е много, много популярен проект.

 

Платформата Node.js е изградена върху V8 JavaScript двигателя на Google, който се използва в браузъра Google Chrome. Тази платформа се използва главно за създаване на уеб сървъри, но нейният обхват не се ограничава само до това.

 

Нека да разгледаме основните характеристики на Node.js.

 

Скорост

 

Една от основните атракции на Node.js е скоростта. JavaScript кодът, изпълнен в Node.js, може да бъде два пъти по-бърз от кода, написан на компилирани езици като C или Java, и с порядъци по-бърз от интерпретираните езици като Python или Ruby. Причината за това е неблокиращата архитектура на платформата, а конкретните резултати зависят от използваните бенчмаркове, но като цяло Node.js е много бърза платформа.

 

Простота

 

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

 

JavaScript

 

JavaScript се изпълнява в средата Node.js. Това означава, че милиони разработчици от предния край, които вече използват JavaScript в браузъра, могат да пишат както код от страна на сървъра, така и от страна на клиента на един и същ език за програмиране, без да се налага да научават изцяло нов инструмент за преминаване към разработка от страна на сървъра.

 

Браузърът и сървърът използват едни и същи езикови концепции. Освен това Node.js може бързо да премине към нови стандарти ECMAScript, тъй като те са внедрени в платформата.

 

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

 

V8 двигател

 

В основата на Node.js, наред с други решения, е JavaScript двигателят с отворен код V8 JavaScript, който се използва в Google Chrome и други браузъри. Това означава, че Node.js се възползва от хиляди инженери, които са направили изпълнението на JavaScript Chrome невероятно бързо и продължават да работят за подобряване на V8.

 

Асинхронност

 

В традиционните езици за програмиране (C, Java, Python, PHP) всички инструкции се блокират по подразбиране, освен ако разработчикът изрично не се погрижи за асинхронно изпълнение на кода. В резултат, ако например в такава среда направите мрежова заявка за изтегляне на някакъв JSON код, изпълнението на потока, от който е направена заявката, ще бъде спряно, докато отговорът бъде получен и обработен.

 

JavaScript улеснява много писането на асинхронен и неблокиращ код, използвайки една нишка, обратно извикване и подход, основан на събития към разработката. Всеки път, когато трябва да извършим тежка операция, ние предаваме обратно извикване на съответния механизъм, който ще бъде извикан веднага след приключване на тази операция. В резултат на това няма нужда да чакате резултатите от такива операции, за да може програмата да продължи да работи.

 

Подобен механизъм възниква в браузърите. Не можем да си позволим да чакаме, да речем,AJAXзаявка за завършване, без да можете да реагирате на действия на потребителя, като например щраквания върху бутони. За да бъде удобно за потребителите да работят с уеб страници, всичко, както изтегляне на данни от мрежата, така и кликване на бутони за обработка, трябва да се извършва едновременно, в реално време.

 

Ако някога сте създавали манипулатор на събития при щракване с бутон, вече сте използвали техники за асинхронно програмиране.

 

Асинхронните механизми позволяват на един сървър Node.js да обработва едновременно хиляди връзки, без да натоварва програмиста със задачи за управление на нишки и паралелно изпълнение на код. Такива неща често са източник на грешки.

 

Node.js предоставя на разработчика неблокиращи основни механизми за вход / изход и като цяло библиотеките, използвани в рамката Node.js, се записват с помощта на неблокиращи парадигми.Това прави блокиращото поведение по-скоро изключение, отколкото норма.

 

Когато Node.js трябва да извърши I / O операция, като зареждане на данни от мрежата, достъп до база данни или файловата система, вместо да блокира основната нишка в очакване на резултатите от такава операция, Node.js ще инициира изпълнение и продължете да правите други неща, докато не бъдат получени резултатите от тази операция.

 

Библиотеки

 

С лекотата и удобството при работа с мениджър на пакети за Node.js, наречен npm, екосистемата Node.js процъфтява. Сега в регистъра npm има над половин милион пакети с отворен код, които всеки разработчик на Node.js може да използва свободно.

 

След като прегледахме някои от основните характеристики на платформата Node.js, нека я изпробваме в действие. Нека започнем с инсталацията.

 

 

Node.js

 

 

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

 

Node.js може да се инсталира по различни начини, които ще разгледаме след малко. Така че могат да бъдат намерени официалните инсталационни пакети за всички основни платформи.

 

Има още един много удобен начин за инсталиране на Node.js, който е да използвате мениджъра на пакети, предоставен в операционната система. Например мениджърът на пакети macOS, който е де факто стандарт в тази област, се нарича Homebrew.

 

Ако имате такъв в системата си, можете да инсталирате Node.js, като изпълните тази команда в командния ред:

 

варете инсталационен възел

 

Списък с мениджъри на пакети за други операционни системи, включително Linux и Windows, можете да намерите тук.

 

Популярен мениджър на версии на Node.js е nvm. Този инструмент ви позволява удобно да превключвате между различни версии на Node.js, с негова помощ можете например да инсталирате и опитате нова версия на Node.js и след това, ако е необходимо, да се върнете към старата. Nvm е полезен и в ситуация, в която трябва да тествате някакъв код на стара версия на Node.js.

 

За начинаещи да използват официалните инсталатори на Node.js. За потребители на macOS би препоръчал да се инсталира Node.js с помощта на Homebrew. Сега, след като сте инсталирали Node.js, е време да напишете "Hello World".

 

Първо приложение Node.js

 

Най-често срещаният пример за първо приложение Node.js е прост уеб сървър. Ето кода му:

const http = изисква ('http')

const hostname = '127.0.0.1'

const порт = 3000

const сървър = http.createServer ((req, res) = & gt; {

res.statusCode = 200

res.setHeader ('Content-Type', 'text / plain')

res.end ('Здравей, свят \ n')

})

server.listen (порт, име на хост, () = & gt; {

console.log (`Сървър, работещ на http: // $ {hostname}: $ {port} /`)

})

 

За да стартирате този код, запазете го във файл server.js и изпълнете следната команда в терминала:

 

node server.js

 

За да проверите сървъра, отворете браузър и въведете в адресната лента http://127.0.0.1:3000, т.е. адреса на сървъра, който ще се показва в конзолата след успешното му стартиране. Ако всичко работи както трябва, на страницата ще се покаже „Hello World“.

 

Нека разгледаме този пример.

 

Първо, обърнете внимание, че кодът съдържа командата за свързване на HTTP модула.

 

Платформата Node.js има отличен стандартен набор от модули, който включва добре разработени механизми за работа с мрежата.

Методът на обекта createServer () http създава нов HTTP сървър и го връща.

 

Сървърът е конфигуриран да слуша на определен порт на конкретен хост. Когато сървърът е готов, се извиква съответният обратен разговор, който ни информира, че сървърът работи.

Когато сървърът получи заявка, се задейства събитие, което предоставя два обекта. Първата е заявката (req, обект http.IncomingMessage), втората е отговорът (res, обект http.ServerResponse). Те са най-важните механизми за обработка на HTTP заявки.

 

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

 

Вторият е необходим за формиране и изпращане на отговор на заявка.

 

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

 

res.statusCode = 200

След това задаваме заглавието Content-Type:

res.setHeader ('Content-Type', 'text / plain')

След това завършваме подготовката на отговора, като добавяме съдържанието му като аргумент към метода end ():

res.end ('Здравей, свят \ n')

 

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

 

Рамки и помощни инструменти за Node.js

 

Node.js е платформа от ниско ниво. За да се опрости разработката за него и да се улесни животът на програмистите, са създадени огромен брой библиотеки. Някои от тях са станали много популярни с течение на времето. Ето малък списък с библиотеки, които според мен са добре направени и си заслужава да бъдат проучени:

 

Експрес: Тази библиотека предоставя на разработчика изключително прост, но мощен инструмент за изграждане на уеб сървъри. Ключът към успеха на Express е минималистичният подход и фокусът върху основните механизми от страна на сървъра, без да се опитвате да наложите визия за сървърната архитектура на едно гише.

 

Метеор: Това е мощна рамка с пълен стек, която използва изоморфен подход за разработване на JavaScript приложения и използване на код както на клиента, така и на сървъра. След като Meteor беше самостоятелен инструмент, който включва всичко, от което може да се нуждае разработчик. Сега се интегрира и с фронтенд библиотеки като React, Vue и Angular. Meteor, в допълнение към разработването на общи уеб приложения, може да се използва и в мобилната разработка.

 

Коа: Тази уеб рамка е изградена от същия екип зад Express. Въз основа на дългогодишния опит с Express, той е разработен с акцент върху простотата и компактността. Този проект възникна като решение на проблема с извършването на големи промени в Express, които са несъвместими с други рамкови механизми, които биха могли да разделят общността.

 

Next.js: Тази рамка е предназначена за организиране на сървърно изобразяване на React приложения.

 

Микро: Това е много лека библиотека за изграждане на асинхронни HTTP микроуслуги.

Socket.io. Това е библиотека за разработване на мрежови приложения в реално време.

 

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

 

Кратка история на Node.js

 

Node.js е на 9 години тази година. Това, разбира се, не е толкова много, когато сравните тази възраст с възрастта на JavaScript, която вече е на 23 години, или с 25-годишната възраст на мрежата, както я познаваме, ако броите от появата на Мозайката браузър.

 

9 години са малко време за технологиите, но сега изглежда, че платформата Node.js винаги е съществувала.

 

С Node.js от ранните версии на платформата, когато беше само на 2 години. Дори тогава, въпреки факта, че нямаше толкова много информация за Node.js, вече можеше да се почувства, че Node.js е много сериозен.

 

Сега нека поговорим за технологиите зад Node.js и да разгледаме набързоосновните разработки, свързани с тази платформа.

 

Така че JavaScript е език за програмиране, който е създаден в Netscape като скриптов език за манипулиране на уеб страници в браузъра Netscape Navigator.

Част от бизнеса на Netscape продаваше уеб сървъри, които включваха среда, наречена Netscape LiveWire. Това ви позволи да създавате динамични уеб страници, използвайки JavaScript от страна на сървъра.

 

идеята за използване на JS за сървърна разработка е много по-стара от Node.js. Тази идея е почти толкова стара, колкото самият JavaScript, но по това време JS от страна на сървъра не беше популярен.

 

Един от ключовите фактори, който направи платформата Node.js толкова широко разпространена и популярна, е когато се появи за първи път. И така, няколко години по-рано JavaScript започна да се смята за сериозен език. Това се случи благодарение на приложенията Web 2.0 като Google Maps или Gmail, които показаха на света силата на съвременните уеб технологии.

 

Благодарение на конкурентната война на браузърите, която продължава и до днес, производителността на JavaScript двигателите се е увеличила значително. Екипите за разработки зад основните браузъри работят всеки ден, за да подобрят ефективността на своите решения, което има благоприятен ефект върху JavaScript като цяло.

 

Един такъв двигател е споменатият вече V8, използван в браузъра Chrome и използван в Node.js. Това е един от резултатите на разработчиците на браузъри, които се стремят към високоефективен JavaScript код.

 

Разбира се, популярността на Node.js се основава не само на щастлива случайност и на факта, че платформата е родена в точното време. Тя представи света на иновативен подход към разработването на JavaScript от страна на сървъра. Нека разгледаме основните етапи в историята на Node.js.

 

2009


  • Появата на Node.js

  • Осъществяване на първия npm вариант.

 

2010

  • Появата на Express.

  • Появата на Socket.io.

 

2011


  • Npm 1.0 освобождаване.

  • Големи компании като LinkedIn и Uber започнаха да използват Node.js.

 

2012


  • Бързото покачване на популярността на Node.js.

 

2013


  • Появата на Ghost, първата голяма платформа за публикации, използващи Node.js.

  • Коа освобождаване.

 

2014


  • Тази година се случиха драматични събития. Появи се проектът IO.js, който е разклонение на Node.js, чиято цел, наред с други неща, беше да се въведе поддръжка на ES6 и да се ускори развитието на платформата.

 

2015


  • Основана е фондацията Node.js.

  • Обединяване на IO.js и Node.js.

  • В npm става възможно да се работи с частни модули.

  • Добив Node.js 4 (трябва да се отбележи, че версии 1, 2 и 3 от платформата не бяха).

 

2016


  • Инцидент с лява подложка.

  • Появата на прежда.

  • Node.js 6 версия.

 

2017


  • Npm започва да обръща повече внимание на сигурността.

  • Node.js 8 издание

  • Появата на поддръжка за HTTP / 2.

  • V8 е официално признат като JS двигател, проектиран не само за Chrome, но и за Node.

  • Всяка седмица има 3 милиарда изтегляния в минута.

 

2018


  • Издание на Node.js 10.

  • Поддръжка за ES модули.

  • Експериментална поддръжка на mjs.