НодеЈС

Шта је НодеЈС?

Шта је НодеЈС?

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

ЈаваСцрипт има чудну историју. Почео је као лагани скриптни језик за веб прегледаче и третиран је више као „играчка“ него као озбиљан програмски језик. Али, одавно је прерастао свој скромни почетак.

Људи су почели да проширују његове могућности када је Гоогле-ов Цхромеов тумач ЈаваСцрипт-а отвореног кода - В8 мотор. Чвор.јс узима овај ЈаваСцрипт механизам и проширује га да ради изван домена прегледача. Чвор.јс веже ЈаваСцрипт са АПИ-јем вашег оперативног система како би могао да се изворно покреће на серверу (или у случају програмера на својој радној површини). Да, то значи да можете да примените апликације на серверу, радне површине и позадинске механизме тако што ћете научити само један језик - ЈаваСцрипт.

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

Међутим, Ноде је ту и више од самог познавања језика.јс има непознате модуле и концепте који би захтевали стрпљење у непрекидном циклусу учења нових концепата. Има свој менаџер пакета (нпм), менаџер верзија (нвм) и највећи светски регистар пакета. Будите сигурни, почетна потешкоћа ће вам дугорочно олакшати живот.

Инсталација

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

Остаћемо при ЛТС верзији. Преузимање Ноде-а са званичне странице вашег оперативног система такође би инсталирало Ноде Пацкаге Манагер (нпм). Тешко је говорити о Нодеу.јс без уласка у нпм. Касније ћемо се вратити менаџеру пакета. Ако користите Убунту или било који други дебиан дистро, једноставно користите:

$ судо апт инсталл нодејс

За све бинарне датотеке и изворни код посетите званичну страницу за преузимање.

То је то са инсталацијом, време је да се каже: „Здраво, Свет!”

Здраво Свете! И стварање сервера

Као што смо и обећали, створићемо а Здраво.јс датотеку и покрените је помоћу Ноде. У обичној текстуалној датотеци, тзв Здраво.јс, напишемо следећи ред:

конзола.лог („Здраво, Свете!”);

Сада сачувајте датотеку и отворите терминал у истом директоријуму као и та датотека и покрените следећу наредбу:

$ чвор здраво.јс
# Или можеш трчати
$ чвор здраво

Ово ће вам дати жељени излаз од "Здраво Свете". Баш као ванилин ЈаваСцрипт. Али сигурно, можемо и боље ..

За разлику од апликација заснованих на ПХП-у којима је потребан Апацхе или Нгинк или неки други програм веб сервера да би се покренуо, у чвору пишемо сопствене хттп руте, конфигуришемо портове и имена хостова и обрађујемо ХТТП захтеве да бисмо дали одговарајуће одговоре.

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

цонст хттп = рекуире ('хттп');
цонст хостнаме = '127.0.0.1 ';
цонст порт = 3000;
цонст сервер = хттп.цреатеСервер ((рек, рес) =>
рез.статусЦоде = 200;
рез.сетХеадер ('Цонтент-Типе', 'тект / плаин');
рез.енд ('Здраво, свет \ н');
);
сервер.Листен (порт, име хоста, () =>
конзола.лог ('Сервер покренут на хттп: // $ хостнаме: $ порт /');
);

Пре него што уђемо у детаље кода, сачувајте ову датотеку и отворите терминал у истом директоријуму као и датотека, а затим покрените:

$ ноде апп

Ово ће извршити садржај датотеке апликација.јс датотеку и добићете излаз на следећи начин:

Отворите веб прегледач и посетите хттп: // лоцалхост: 3000 / или хттп: // 127.0.0.1: 3000 / да бисте на прозору прегледача видели једноставан текст Хелло Ворлд.

Па шта смо управо урадили? Па, ако сте упознати са ЈаваСцриптом, вероватно можете смислити нешто од тога ..

Тхе Прва линија увози хттп модул, који је уграђени модул који долази заједно са Ноде-ом, и помаже нам да преслушавамо захтеве у веб сокетама, обрађујемо хттп захтеве и дајемо одговарајуће одговоре.

Тхе други и трећи ред поставља име хоста до '127.0.0.1 ' и Лука  до 3000. То значи да можемо да наставимо да поново користимо променљиву име хоста и Лука, уместо да откуцате целу ИП адресу. Касније, када га заправо будете размештали на серверу, заменићете га ИП адресом сервера и бројем порта попут 80 или 443 ако је веб сервер. Кључна реч цонст осигурава да променљива не може бити промењена негде другде у програму.

Тхе линије четири до осам  креира објект сервера који узима захтев као рек и даје одговор као рез.

Одговор има атрибут статусЦоде, рез.статусЦоде која је постављена на 200 што клијент тумачи као статус „у реду“. Кодови грешака су 400 и 500, на пример, Грешка 404 је код за ресурс који није пронађен. Слично томе, атрибут сетХеадер је постављен на 'тект / плаин', што значи да ће клијент примити обичан текст. Можете да подесите на ХТМЛ и прегледач ће приказати било који важећи хтмл са којим сервер одговара. И крај атрибут је једноставно текст који желимо да вратимо. Уместо да овде имају низ, апликације из стварног света ће имати статичну ХТМЛ датотеку или неку другу .јс датотеку за клијентски прегледач, што би представљало много кориснији одговор.

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

Шта то подразумева?

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

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

Снага В8

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

Један од најважнијих аргумената у прилог томе је да В8 мотор има изврсну подршку за асинхроне, неблокирајуће И / О. Што у основи значи да један процес који се изводи у системској меморији може да обрађује више долазних захтева Оно што отприлике значи је да ако се један захтев обрађује, а други захтев уђе, Ноде има могућност да започне обраду новог захтева чак и ако први захтев још није завршен.

Штавише, један процес покренут у вашој меморији одговоран је за обраду свих долазних захтева. За разлику од апликација заснованих на ПХП-у, која ствара нови процес за сваки нови долазни захтев.

Надам се да је овај увод био довољан да вас мотивише за Ноде.јс. Знајмо да ли желите детаљније водиче о сличним темама пратећи нас на Твиттер-у, Фацебоок-у и ИоуТубе-у.

Како променити показивач миша и величину, боју и шему курсора на Виндовс 10
Показивач миша и курсор у оперативном систему Виндовс 10 су врло важни аспекти оперативног система. То се може рећи и за друге оперативне системе, так...
Бесплатни и отворени кодни покретачки програми за развој Линук игара
Овај чланак ће обухватити листу бесплатних покретача игара отвореног кода који се могу користити за развој 2Д и 3Д игара на Линуку. Бројни су такви мо...
Водич за сенку Томб Раидера за Линук
Схадов оф тхе Томб Раидер је дванаести додатак серији Томб Раидер - акцијско-авантуристичкој игри коју је створио Еидос Монтреал. И критичари и фанови...