lëshimi , platforma për ekzekutimin e aplikacioneve të rrjetit në gjuhën JavaScript. Njëkohësisht ka përfunduar edhe stabilizimi i degës së mëparshme Node.js 12.x, e cila është kaluar në kategorinë e versioneve me mbështetje afatgjatë, për të cilat përditësimet publikohen për 4 vjet. Mbështetja për degën e mëparshme LTS Node.js 10.0 do të vazhdojë deri në prill 2021, ndërsa për degën edhe më të hershme LTS 8.0 deri në janar 2020.
Main :
- Motori V8 është përditësuar në versionin , në të cilin janë përdorur metoda të reja për optimizimin e performancës, është përmirësuar destrukturimi i objekteve, është ulur konsumi i memories dhe është shkurtuar koha e përgatitjes për ekzekutimin e WebAssembly;
- Si parazgjedhje është aktivizuar mbështetja e plotë për internacionalizim dhe Unicode në bazë të bibliotekave (International Components for Unicode), që u lejojnë zhvilluesve të shkruajnë kod, punën me gjuhë dhe locale të ndryshme. Moduli full-icu tani është i instaluar si parazgjedhje;
- ĂshtĂ« stabilizuar API , pĂ«r tĂ« krijuar cikle shumĂ«fijĂ«she tĂ« pĂ«rpunimit tĂ« ngjarjeve (event loop). Implementimi bazohet nĂ« modulin worker_threads, i cili lejon ekzekutimin e kodit JavaScript nĂ« disa fije paralele. MbĂ«shtetja e qĂ«ndrueshme pĂ«r API Workers Threads Ă«shtĂ« backportuar gjithashtu nĂ« degĂ«n LTS Node.js 12.x;
- Janë rritur kërkesat ndaj platformave. Për kompilim tani të paktën macOS 10.11 (kërkohet Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
- ĂshtĂ« pĂ«rmirĂ«suar mbĂ«shtetja pĂ«r Python 3. NĂ«se nĂ« sistem janĂ« tĂ« pranishĂ«m Python 2 dhe Python 3, vazhdon tĂ« pĂ«rdoret Python 2, por Ă«shtĂ« shtuar mundĂ«sia e kompilimit edhe kur nĂ« sistem Ă«shtĂ« i instaluar vetĂ«m Python 3;
- ĂshtĂ« hequr implementimi i vjetĂ«r i parser-it HTTP («âhttp-parser=legacy»). JanĂ« hequr ose janĂ« shpallur tĂ« vjetruara thirrjet dhe vetitĂ« FSWatcher.prototype.start(), ChildProcess._channel, metoda open() nĂ« objektet ReadStream dhe WriteStream, request.connection, response.connection, module.createRequireFromPath();
- Më pas përditësimi 13.0.1, në të cilin menjëherë u korrigjuan disa gabime. Ndër të tjera, u zgjidh problemi me shfaqjen në npm 6.12.0 të paralajmërimit për përdorimin e një versioni të pambështetur.
Kujtojmë se platforma Node.js mund të përdoret si për mbështetjen nga ana e serverit të funksionimit të aplikacioneve Web, ashtu edhe për krijimin e programeve të zakonshme klient-server dhe të rrjetit. Për zgjerimin e funksionalitetit të aplikacioneve për Node.js është përgatitur një , ku mund të gjenden module me implementime të serverëve dhe klientëve HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, module për integrim me framework-e të ndryshme web, përpunues WebSocket dhe Ajax, konektorë për DBMS (MySQL, PostgreSQL, SQLite, MongoDB), motorë shabllonesh, motorë CSS, implementime të algoritmeve kriptografike dhe sistemeve të autorizimit (OAuth), si dhe parserë XML.
Për të përballuar përpunimin e një numri të madh kërkesash paralele, Node.js përdor një model asinkron të ekzekutimit të kodit, i bazuar në trajtimin e ngjarjeve në mënyrë jo-bllokuese dhe në përcaktimin e callback-handlerëve. Si metoda për multipleksimin e lidhjeve mbështeten epoll, kqueue, /dev/poll dhe select. Për multipleksimin e lidhjeve përdoret biblioteka , e cila është një shtresë shtesë mbi në sistemet Unix dhe mbi IOCP në Windows. Për krijimin e një pool-i fijesh (thread pool) përdoret biblioteka , ndërsa për ekzekutimin e kërkesave DNS në mënyrë jo-bllokuese është integruar . Të gjitha thirrjet e sistemit që shkaktojnë bllokim ekzekutohen brenda pool-it të fijeve dhe më pas, ashtu si edhe handlerët e sinjaleve, e kthejnë rezultatin e punës së tyre përmes një kanali pa emër (pipe). Ekzekutimi i kodit JavaScript sigurohet përmes përdorimit të motorit (përveç kësaj, Microsoft zhvillon një variant të Node.js me motorin Chakra-Core).
Në thelb, Node.js i ngjan framework-eve , , dhe të ngjarjeve në Tcl, por cikli i përpunimit të ngjarjeve (event loop) në Node.js është i fshehur nga zhvilluesi dhe i ngjan trajtimit të ngjarjeve në një aplikacion web që funksionon në shfletues. Gjatë zhvillimit të aplikacioneve për Node.js, duhet të merret parasysh specifika e programimit të orientuar nga ngjarjet; për shembull, në vend të ekzekutimit të «var result = db.query(«select..»);» me pritjen e përfundimit të punës dhe përpunimin pasues të rezultateve, Node.js përdor parimin e ekzekutimit asinkron, pra kodi shndërrohet në «db.query(«select..», function (result) {përpunimi i rezultatit});», ku kontrolli kalon menjëherë te kodi vijues, ndërsa rezultati i kërkesës përpunohet sapo të mbërrijnë të dhënat. .
Burimi: opennet.ru
