…високоскоростен, високопроизводителен, щадящ ресурси, ефикасно комуникиращ в реално време, гъвкав, с отворен код, с огромна подкрепяща общност, фенове и модули, и не на последно място: радващ разработчиците и повишаващ продуктивността им…
Това описание отговаря на въпроса Какво е Node.js?, от гледна точка на потребителите, които го използват. В действителност Node.js представлява „кутията“, а „съдържанието“ в нея е източникът на всички положителни характеристики на Node.js – езикът за програмиране JavaScript.
Защо JavaScript разработчиците и компаниите се радват на Node.js? Разберете в статията: 🔗 За какво се използва Node.js и какви са ползите от него? | Blog
Node.js е сървърна платформа за изпълнение на JavaScript код
Node.js (или само Node) е сървърно приложение, създаващо среда за изпълняване на JavaScript код (runtime environment), а не език за програмиране. Node.js прави възможно изпълнението на JavaScript код директно на сървъра, както обикновено това се случва в уеб браузъра. Когато се каже, че дадено приложение е написано на Node.js, се разбира, че то е написано на JavaScript и се изпълнява от Node.js.
Често Node.js се описва като подходящо решение за приложения с интензивни I/O операции, но не и за такива с интензивна CPU обработка. Причината за това е, че тежките CPU обработки може да блокират процеса на Node.js.
И всеки разработчик, който разбира от „кодене“ на JavaScript, ще се почувства в свои води с Node.js 🙂
Плюсове на Node.js:
- Уеб разработчиците, които работят с JavaScript, не е нужно да изучават допълнителни езици и технологии, за да могат да вдъхнат живот на своя уеб проект;
- По-малко различни технологии – по-лесна и бърза поддръжка на уеб приложението;
- Създаване на високо производителни, мащабируеми уеб приложения, работещи в реално време;
- Използва задвижван от събития асинхронен I/O модел на опериране с ползване на един единствен процес.
Node.js – JavaScript на сървъра
Стандартно езикът за програмиране JavaScript се използва основно за front-end разработка (частта от приложението, с която потребителят взаимодейства) в сайтовете, за да добави някаква интерактивна функционалност и раздвижване на статичното HTML съдържание. JavaScript кодът за front-end частта на сайта/уеб приложението се изпълнява в уеб браузъра, с помощта на специален JavaScript интерпретатор/двигател (JavaScript engine).
През 2009г. един такъв JavaScript двигател е поставен и използван в сървърна среда. Разработчикът на имплементацията е Раян Дал, а проектът получава името Node.js. Движещата сила на Node.js е JavaScript двигателя V8 на Google. Раян Дал обявява проекта си на конференцията JSConf EU на 8 ноември 2009г. Тогава той представя и механизма на работа на своя проект – един работещ процес, задействан от събития (с обратни повиквания) и неблокиращ (асинхронен) програмен метод за входно-изходни операции.
Популярност на Node.js
Node.js често може да се види използван за високоскоростни приложения, които работят в реално време. Големи компании използват Node.js и го включват като част от дадено голямо приложение или услуга. Някои от потребителите на Node.js са: PayPal, Pinterest, Netflix, Mozilla, Amazon, Symantec, Github, Coursera, Flickr, WordPress, LinkedIn, Ebay, Nasa, Airbnb, Trello, Yahoo, Shutterstock и много други.
📊 Интересът към Node.js през годините, измерващ се по количеството запитвания към Google, поддържаше постоянен растеж, до юли 2020 г., когато се забеляза обрат.
⇒ https://trends.google.com/trends/explore?date=2009-07-28%202021-02-28&q=node.js,nodejs
📊 За поредна година JavaScript е най-популярният език в портала за разработчици Stack Overflow.
⇒ https://insights.stackoverflow.com/survey/2020#technology-programming-scripting-and-markup-languages
📊 Node.js е на първо място по популярност в Stack Overflow.
⇒ https://insights.stackoverflow.com/survey/2020#technology-other-frameworks-libraries-and-tools
Разработка на Node.js приложения и JavaScript технологии
Node.js може да се използва като се инсталира на сървър или на личния ви компютър. Най-често Node.js се инсталира на сървър, за да може създадените за него приложения да са достъпни в уеб, например на собствен виртуален сървър. Node.js може да работи с всякакви сървърни технологии като уеб сървърите Apache, Nginx и различните типове бази данни NoSQL (MongoDB, Redis) и SQL (MySQL) и много други. Има богат микс от инструменти и технологии, използвани с Node.js.
📊 В класацията за най-използвани уеб сървъри Node.js държи средни позиции. Node.js може да се използва в комбинация с лидерите в класацията – Apache и Nginx, както например е Node.js в хостинг акаунта. Другото е, че Node.js се използва при специфични приложения, които имат много голям трафик и нуждата да се справят с голям брой заявки в реално време (например чат). Тези уеб платформи и сайтове, които имат подобни нужди и използват Node.js, са малка част от всичките милиони уеб сайтове.
⇒ https://w3techs.com/technologies/overview/web_server/all
Node.js се използва за front-end, back-end и full-stack разработка на приложения
Front End JavaScript технологии
Front-End разработката засяга всичко, което потребителите виждат в браузъра/приложението. Отговаря за визията, дизайна и усещането на потребителите за приложението. В тази сфера на уеб разработката се използват основно няколко технологии: HTML, CSS и JavaScript. Едни от най-известните JS технологии (JS рамки и JS библиотеки), използвани за разработка на потребителски интерфейси са: React, Angular, Vue, Ember и Backbone.
Едно много известно приложение-пример за използването на React.js технологията, е новият блок-редактор на WordPress Gutenberg, който е изцяло написан на React.js JavaScript.
📊 GitHub и Stack Overflow популярност на технологични рамки за разработка. Според измерване на популярността по брой звезди за проекта в GitHub и броя на запитвания в Stack Overflow, Angular и React преобладават в топ 10 най-популярни.
⇒ https://hotframeworks.com
📊 Тъй като за някои статистики се използва метода за сканиране на кода на сайта, back-end технологиите трудно биха могли да се засекат. Поради това в класацията за най-използвани JS технологии, преобладават тези, които се използват и могат да се засекат в кода (front-end). jQuery е на първо място в w3techs.com класацията, следван от Bootstrap, Modernizr и Underscore.
⇒ https://w3techs.com/technologies/overview/javascript_library/all
Back End JavaScript технологии
Back-End разработката се отнася за сървърната част от приложението и комуникацията с базата данни и крайния потребител. Отговаря на въпроса Как функционира сайта/приложението?. За разработка на back-end JavaScript основно се използва сървърната платформа Node.js и JS рамките Express.js и Socket.io.
Full Stack JavaScript технологии
Full Stack е комбинацията от back-end и front-end разработката. Използвани технологични рамки: Meteor, Rendr, Derby.js и други.
Най-често срещаната комбинация от Node.js и други сървърни (back-end) и front-end технологии, използвани за разработка на приложения, са: MEAN – MongoDB, Express.js, Angular.js, Node.js и MERN – MongoDB, Express.js, React.js, Node.js. Това са пакети от взаимно свързани (full-stack) технологии.
NPM (Node Package Manager) – мениджър на пакети
Към Node.js се предоставят пакети (обикновено съдържащи модули, които от своя страна представляват колекции от JavaScript библиотеки), като допълнителни такива могат да се инсталират през мениджъра за пакети „NPM“.
NPM е мениджър на JavaScript пакети. Пакетите може да са единични файлове, JavaScript библиотеки или много по-сложни колекции от библиотеки – цели JavaScript работни рамки като например Express.js и други.
През NPM може да се инсталират и управляват пакетите към даден Node.js проект. Към момента има над 700 хил. пакета в NPM хранилището.
📊 В класацията за най-многобройни модули към дадена технология, Node.js е ненадминат. Към Node.js се използва мениджър за пакети, наречен NPM, това са библиотеки, модули, колекции от библиотеки, които може да се инсталират за подпомагане на/разработката на проектите. Към момента има стотици хиляди NPM модули.
⇒ http://www.modulecounts.com
Пакетите с готов JavaScript код улесняват и ускоряват разработката и създаването на Node.js проекти.
Инсталация на пакети през NPM
NPM мениджърът се състои от cli (command line interface) клиент и онлайн база данни с пакетите, наричана NPM регистър. NPM cli инструментът се инсталира на сървъра, на който е наличен и Node.js.
С една команда в конзолата може да се инсталира пакет от NPM регистъра. Например инсталацията на Express.js става с:
npm install express
Модул за Node.js е всичко, което може де се вмъкне с „require“ в кода на приложението. Например следното:
var req = require('request')
може да се разгледа като: променливата req отговаря на модула request.
Пример за модул, който създава съвсем прост уеб сървър:
var http = require("http");
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}).listen(80);
Посоченият код се записва във файл server.js и може да се стартира през конзола със следната команда:
node server.js
След като се стартира скриптът, при достъпване през уеб браузър, ще получите съобщението „Hello World“.
Инсталацията на приложението Node.js включва уеб сървър, който може да се ползва за тестови цели.
Node.js хостинг
Node.js хостинг означава сървърна среда, в която Node.js платформата може да работи.
При СуперХостинг.БГ можете да използвате Node.js на всички предлагани услуги. Вижте повече: 🔗 Node.js хостинг | Help
При уеб хостинг услугата (споделен хостинг и Managed VPS) се предлага специален инструмент за създаване и управление на сървърна среда за Node.js. През графичен интерфейс можете да извършвате настройка на средата.
При услугата собствен виртуален сървър (VPS) Node.js се инсталира като отделно сървърно приложение. Това дава възможност за прилагане на специфични настройки за Node.js, които не биха били възможни при уеб хостинг услугата. Също така можете да инсталирате допълнителни back-end технологии като например MongoDB, които често се използват от Node.js приложенията. Управлението на сървъра се извършва през SSH достъп.
Вижте още: Интересът към Node.js, Python и Git се повишава | Blog
Абонирайте се за СуперБлога, за да научавате първи най-важното и полезното от света на уеб, касаещо Вашия сайт и дигитално развитие.