Ноде.ЈС (Node.JS)

Ноде.јс је рунтиме ЈаваСцрипт-а са више платформи отвореног кода који се покреће на серверима. Од објављивања 2009. године, ова платформа је постала изузетно популарна и данас игра веома важну улогу на пољу веб развоја.
За цео чланак на Node.JS ...

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

Оперативни систем

Простор на диску

РАМ меморија

Тип диска

ЦПУ Цорес

Врста

Резултат - 0
RedSwitches Logo
RedSwitches

РедСвитцхес

Pearl
$6.94 /Месечно


Локације сервера


RedSwitches Servers in NetherlandsНизоземска RedSwitches Servers in UnionАмерика RedSwitches Servers in MelbourneАустралија RedSwitches Servers in MumbaiИндија RedSwitches Servers in GermanyНемачка
Упоредити
Резултат - 0
Hostarina Logo
Hostarina

Хостарина

Personal
$2.92 /Месечно


Локације сервера


Hostarina Servers in UnionАмерика Hostarina Servers in RawalpindiПакистан Hostarina Servers in MunichНемачка
Упоредити
Резултат - 0
Net9 Oy Logo
Net9 Oy

Нет9 Ои

Small
$1.13 /Месечно


Локације сервера


Net9 Oy Servers in StockholmШведска Net9 Oy Servers in HelsinkiФинска Net9 Oy Servers in ParisФранцуска
Упоредити
Резултат - 0
Heroku Logo
Heroku

Хероку

Hobby
$7 /Месечно


Локације сервера


Heroku Servers in United StatesАмерика
Упоредити
Резултат - 0
Awareindia.net Logo
Awareindia.net

Авареиндиа.нет

Linux Hosting Plan G
$5.83 /Месечно

Упоредити
Резултат - 0
Chemi Cloud Logo
Chemi Cloud

Цхеми Цлоуд

Ionic
$2.95 /Месечно


Локације сервера


Chemi Cloud Servers in BangaloreИндија Chemi Cloud Servers in New YorkАмерика Chemi Cloud Servers in BucharestРумунија Chemi Cloud Servers in LondonВелика Британија Chemi Cloud Servers in AmsterdamНизоземска Chemi Cloud Servers in TorontoКанада Chemi Cloud Servers in SydneyАустралија
Упоредити
Резултат - 0
Oudel Logo
Oudel

Оудел

cPanel Hosting 1
$5.95 /Месечно


Локације сервера


Oudel Servers in UnionАмерика
Упоредити

 

Node.js

 

 

Ноде.јс је рунтиме ЈаваСцрипт-а са више платформи отвореног кода који се покреће на серверима. Од објављивања 2009. године, ова платформа је постала изузетно популарна и данас игра веома важну улогу на пољу веб развоја. Ако број индикатора који је пројекат прикупио на ГитХубу узмемо у обзир као показатељ популарности, онда је Ноде.јс, који има више од 50.000 звезда, врло, веома популаран пројекат.

 

Платформа Ноде.јс је изграђена на Гоогле-овом В8 ЈаваСцрипт механизму, који се користи у прегледачу Гоогле Цхроме. Ова платформа се углавном користи за креирање веб сервера, али њен опсег није ограничен на ово.

 

Погледајмо главне карактеристике Ноде.јс.

 

Брзина

 

Једна од главних атракција Ноде.јс-а је брзина. ЈаваСцрипт код изведен у Ноде.јс може бити двоструко бржи од кода написаног на компајлираним језицима као што су Ц или Јава, и редослед величина бржи од интерпретираних језика као што су Питхон или Руби. Разлог томе је неблокирајућа архитектура платформе, а конкретни резултати зависе од коришћених мерила, али свеукупно, Ноде.јс је врло брза платформа.

 

Једноставност

 

Ноде.јс платформу је лако научити и користити. Заправо је то врло једноставно, посебно у поређењу са неким другим серверским платформама.

 

ЈаваСцрипт

 

ЈаваСцрипт се извршава у окружењу Ноде.јс. То значи да милиони фронт-енд програмера који већ користе ЈаваСцрипт у прегледачу могу да напишу и код на страни сервера и клијента на истом програмском језику, а да не морају да науче потпуно нову алатку за прелазак на развој на страни сервера.

 

Прегледник и сервер користе исте језичке концепте. Поред тога, Ноде.јс може брзо да пређе на нове ЕЦМАСцрипт стандарде пошто су имплементирани на платформи.

 

Нема потребе да чекате да корисници освеже своје прегледаче због овога, јер је Ноде.јс окружење на страни сервера које у потпуности контролише програмера. Као резултат, нове језичке функције постају доступне када инсталирате пратећу верзију Ноде.јс.

 

В8 мотор

 

У срцу Ноде.јс-а, између осталих решења, налази се Гоогле-ов В8 ЈаваСцрипт механизам отвореног кода, који се користи у Гоогле Цхроме-у и другим прегледачима. То значи да Ноде.јс користи предности хиљада инжењера који су невероватно брзо извршили ЈаваСцрипт Цхроме и настављају да раде на побољшању В8.

 

Асинхроност

 

У традиционалним програмским језицима (Ц, Јава, Питхон, ПХП), све инструкције се подразумевано блокирају, осим ако програмер изричито не брине о асинхроном извршавању кода. Као резултат тога, ако, на пример, у таквом окружењу поднесете мрежни захтев за преузимање неког ЈСОН кода, извршавање тока из којег се захтев захтева биће обустављено док одговор не буде примљен и обрађен.

 

ЈаваСцрипт много олакшава писање асинхроног и неблокирајућег кода користећи једну нит, повратне позиве и приступ развоју вођен догађајима. Сваки пут када треба да извршимо тешку операцију, прослеђујемо повратни позив одговарајућем механизму, који ће бити позван одмах по завршетку ове операције. Као резултат, нема потребе да се чекају резултати таквих операција да би програм наставио да ради.

 

Сличан механизам је настао у прегледачима. Не можемо себи приуштити да чекамо, рецимо, наАЈАКСзахтева да се заврши без могућности да одговорите на радње корисника, као што су кликови на дугме. Да би корисницима било погодно за рад са веб страницама, све, и преузимање података са мреже и обрада кликова на дугме, мора се одвијати истовремено, у реалном времену.

 

Ако сте икада креирали обрађивач догађаја кликом на дугме, већ сте користили технике синхроног програмирања.

 

Асинхрони механизми омогућавају једном серверу Ноде.јс да истовремено обрађује хиљаде веза без оптерећења програмера задацима управљања нитима и паралелног извршавања кода. Такве ствари су често извор грешака.

 

Ноде.јс пружа програмеру неблокирајуће основне И / О механизме, и уопште, библиотеке коришћене у оквиру Ноде.јс су написане користећи неблокирајуће парадигме.То чини понашање блокирања изузетком, а не нормом.

 

Када Ноде.јс треба да изведе И / О операцију, као што је учитавање података из мреже, приступ бази података или систему датотека, уместо да блокира главну нит која чека резултате такве операције, Ноде.јс ће покренути извршење и настави да радиш друге ствари док се не приме резултати ове операције.

 

Библиотеке

 

Са лакоћом и погодношћу рада са менаџером пакета за Ноде.јс који се назива нпм, екосистем Ноде.јс напредује. Сада у нпм регистру постоји преко пола милиона пакета отвореног кода које било који програмер Ноде.јс може слободно користити.

 

Након што смо прегледали неке од главних карактеристика платформе Ноде.јс, испробајмо је на делу. Почнимо са инсталацијом.

 

 

Node.js

 

 

Инсталирање Ноде.јс

 

Ноде.јс се може инсталирати на разне начине, што ћемо покрити у тренутку. Дакле, могу се пронаћи званични инсталациони пакети за све главне платформе.

 

Постоји још један врло погодан начин за инсталацију Ноде.јс-а, а то је коришћење менаџера пакета предвиђеног у оперативном систему. На пример, менаџер пакета мацОС, који је де фацто стандард у овој области, назива се Хомебрев.

 

Ако га имате на вашем систему, можете инсталирати Ноде.јс покретањем ове команде у командној линији:

 

брев инсталл чвор

 

Списак менаџера пакета за друге оперативне системе, укључујући Линук и Виндовс, можете пронаћи овде.

 

Популарни менаџер верзија Ноде.јс је нвм. Овај алат вам омогућава угодно пребацивање између различитих верзија Ноде.јс, уз његову помоћ можете, на пример, да инсталирате и испробате нову верзију Ноде.јс, а затим, ако је потребно, вратите се на стару. Нвм је такође користан у ситуацији када треба да тестирате неки код на старој верзији Ноде.јс.

 

За почетнике да користе званичне инсталационе програме Ноде.јс. Корисницима мацОС-а препоручује се инсталирање Ноде.јс помоћу Хомебрев-а. Сада када сте инсталирали Ноде.јс, време је да напишете „Хелло Ворлд“.

 

Прва апликација Ноде.јс

 

Најчешћи пример прве Ноде.јс апликације је једноставан веб сервер. Ево његовог кода:

цонст хттп = рекуире ('хттп')

цонст хостнаме = '127.0.0.1'

цонст порт = 3000

цонст сервер = хттп.цреатеСервер ((рек, рес) = & гт; {

рес.статусЦоде = 200

рес.сетХеадер ('Цонтент-Типе', 'тект / плаин')

рес.енд ('Здраво, свет \ н')

})

сервер.листен (порт, име хоста, () = & гт; {

цонсоле.лог (`Сервер покренут на хттп: // $ {хостнаме}: $ {порт} /`)

})

 

Да бисте покренули овај код, спремите га у датотеку сервер.јс и покрените следећу команду у терминалу:

 

чвор сервер.јс

 

Да бисте проверили сервер, отворите прегледач и унесите у траку за адресу хттп://127.0.0.1:3000, односно адресу сервера која ће бити приказана у конзоли након успешног покретања. Ако све функционише како треба, на страници ће се појавити „Хелло Ворлд“.

 

Погледајмо овај пример.

 

Прво приметите да код садржи наредбу за повезивање ХТТП модула.

 

Платформа Ноде.јс има одличан стандардни сет модула, који укључује добро развијене механизме за рад са мрежом.

Метода објекта цреатеСервер () хттп креира нови ХТТП сервер и враћа га.

 

Сервер је конфигурисан за преслушавање на одређеном порту на одређеном хосту. Када је сервер спреман, позива се одговарајући повратни позив који нас обавештава да је сервер покренут.

Када сервер прими захтев, покреће се догађај који пружа два објекта. Први је захтев (рек, хттп.ИнцомингМессаге објекат), други је одговор (рес, хттп.СерверРеспонсе објекат). Они су најважнији механизми за руковање ХТТП захтевима.

 

Прва нам пружа информације о захтеву. У нашем једноставном примеру, ми не користимо ове податке, али ако је потребно, користећи објекат, захтевате приступ заглављима захтева и подацима прослеђеним у њему.

 

Други је потребан за формирање и слање одговора на захтев.

 

У овом случају одговор на захтев формирамо на следећи начин. Прво смо поставили код статуса својства на вредност 200, што указује на успешну операцију:

 

рес.статусЦоде = 200

Затим постављамо наслов Цонтент-Типе:

рес.сетХеадер ('Цонтент-Типе', 'тект / плаин')

Затим довршавамо припрему одговора додавањем његовог садржаја као аргумента на енд енд ():

рес.енд ('Здраво, свет \ н')

 

Већ смо споменули да се око платформе Ноде.јс створио моћан екосистем. Хајде сада да разговарамо о неким популарним оквирима и помоћним алатима за Ноде.јс.

 

Фрамеворкс и помоћни алати за Ноде.јс

 

Ноде.јс је платформа ниског нивоа. Да би се поједноставио развој и олакшао живот програмерима, створен је огроман број библиотека. Неки од њих су временом постали веома популарни. Ево малог списка библиотека за које мислим да су добро урађени и да их вреди истражити:

 

изразити: Ова библиотека пружа програмеру изузетно једноставан, али моћан алат за изградњу веб сервера. Кључ успеха Екпресса био је минималистички приступ и фокус на основним механизмима на страни сервера, без покушаја наметања визије серверске архитектуре „на једном месту“.

 

Метеор: То је моћан фулл-стацк оквир који има изоморфни приступ за развој ЈаваСцрипт апликација и коришћење кода и на клијенту и на серверу. Некада је Метеор био самостални алат који укључује све што је програмеру могло требати. Сада се такође интегрише са фронтенд библиотекама као што су Реацт, Вуе и Ангулар. Метеор се, осим за развој уобичајених веб апликација, може користити и за развој мобилних уређаја.

 

Коа: Овај веб оквир је створио исти тим који стоји иза Екпресса. Надовезујући се на дугогодишње искуство са Екпресс-ом, развијен је са фокусом на једноставност и компактност. Овај пројекат настао је као решење проблема уношења великих промена у Екпресс, које су некомпатибилне са другим оквирним механизмима који могу поделити заједницу.

 

Нект.јс: Овај оквир је дизајниран да организује приказивање Реацт апликација на страни сервера.

 

Мицро: То је врло лагана библиотека за изградњу асинхроних ХТТП микросервиса.

Соцкет.ио. То је библиотека за развој мрежних апликација у реалном времену.

 

У ствари, у екосистему Ноде.јс можете пронаћи помоћну библиотеку за готово било који задатак. Као што можете замислити, потребно је пуно времена за изградњу таквог екосистема. Платформа Ноде.јс појавила се 2009. Током њеног постојања догодило се много ствари које би програмеру који жели да научи ову платформу требало да буде познат.

 

Кратка историја Ноде.јс

 

Ноде.јс ове године има 9 година. То, наравно, није толико када упоредите ово доба са старошћу ЈаваСцрипт-а која има већ 23 године или са 25-годишњом старошћу Веба колико је познато ако рачунамо од појаве Мозаика претраживач.

 

Девет година је кратко време за технологију, али сада се чини да Ноде.јс платформа увек постоји.

 

Са Ноде.јс из раних верзија платформе када је имала само 2 године. Чак и тада, упркос чињеници да о Ноде.јс није било толико информација, већ се могло осетити да је Ноде.јс веома озбиљан.

 

Хајде сада да разговарамо о технологијама иза Ноде.јс-а и да брзо погледамоглавни догађаји повезани са овом платформом.

 

Дакле, ЈаваСцрипт је програмски језик који је створен у Нетсцапеу као скриптни језик за манипулисање веб страницама у прегледачу Нетсцапе Навигатор.

Део Нетсцапеовог посла био је продаја веб сервера, који су укључивали окружење звано Нетсцапе ЛивеВире. Омогућило вам је стварање динамичних веб страница користећи ЈаваСцрипт на страни сервера.

 

идеја употребе ЈС за развој на страни сервера много је старија од Ноде.јс. Ова идеја стара је готово колико и сам ЈаваСцрипт, али у то време, ЈС на серверу није био популаран.

 

Један од кључних фактора који је учинио платформу Ноде.јс тако широко распрострањеном и популарном је када се први пут појавила. Дакле, неколико година раније ЈаваСцрипт је почео да се сматра озбиљним језиком. То се догодило захваљујући Веб 2.0 апликацијама попут Гоогле Мапс или Гмаил, које су свету показале снагу модерних веб технологија.

 

Захваљујући конкурентском рату прегледача, који траје и данас, перформансе ЈаваСцрипт мотора су се знатно повећале. Развојни тимови који стоје иза главних прегледача свакодневно раде на побољшању перформанси њихових решења, што повољно утиче на ЈаваСцрипт уопште.

 

Један од таквих покретача је већ поменути В8, који се користи у прегледачу Цхроме и користи у Ноде.јс. То је један од резултата програмера претраживача који теже ЈаваСцрипт коду високих перформанси.

 

Наравно, популарност Ноде.јс заснива се не само на срећној случајности и на чињеници да је платформа рођена у право време. Упознала је свет са иновативним приступом развоју ЈаваСцрипт на страни сервера. Погледајмо главне прекретнице у историји Ноде.јс.

 

2009


  • Појава Ноде.јс

  • Израда прве нпм варијанте.

 

2010

  • Појава Екпресс-а.

  • Појава Соцкет.ио.

 

2011


  • Нпм 1.0 издање.

  • Велике компаније попут ЛинкедИн-а и Убера почеле су да користе Ноде.јс.

 

2012


  • Брзи раст популарности Ноде.јс.

 

2013


  • Појава Гхост-а, прве велике платформе за публикације које користе Ноде.јс.

  • Коа релеасе.

 

2014


  • Ове године су се одиграли драматични догађаји. Појавио се пројекат ИО.јс, који је вилица Ноде.јс-а, чија је сврха, између осталог, била увођење ЕС6 подршке и убрзање развоја платформе.

 

2015


  • Основана је Ноде.јс фондација.

  • Спајање ИО.јс и Ноде.јс.

  • У нпм постаје могућ рад са приватним модулима.

  • Ииелд Ноде.јс 4 (треба напоменути да верзије 1, 2 и 3 са платформе нису).

 

2016


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

  • Појава предива.

  • Издање Ноде.јс 6.

 

2017


  • Нпм почиње да обраћа више пажње на сигурност.

  • Издање Ноде.јс 8

  • Појава подршке за ХТТП / 2.

  • В8 је званично препознат као ЈС мотор дизајниран не само за Цхроме већ и за Ноде.

  • Сваке недеље се преузме 3 милијарде нпм.

 

2018


  • Издање Ноде.јс 10.

  • Подршка за ЕС модуле.

  • Експериментална подршка за мјс.