Node.js 13.0 iznākŔana, serveru JavaScript platforma

Pieejams izlaidums Node.js 13.0, platforma tÄ«mekļa lietojumprogrammu izpildei JavaScript valodā. Vienlaikus noslēgta iepriekŔējās Node.js 12.x versijas stabilizācija, kas pārcelta uz ilgtermiņa atbalsta izlaiÅ”anas kategoriju, kurai atjauninājumi tiks izlaisti 4 gadus. IepriekŔējās LTS versijas Node.js 10.0 atbalsts ilgs lÄ«dz 2021. gada aprÄ«lim, bet pirms divām LTS versijām 8.0 lÄ«dz 2020. gada janvārim.

īpaŔības uzlabojumi:

  • V8 dzinējs ir atjaunināts uz versiju 7.8, kurā tiek izmantotas jaunas veiktspējas optimizācijas metodes, uzlabota objektu destrukturēŔana, samazināta atmiņas patēriņŔ un saÄ«sināts WebAssembly izpildes sagatavoÅ”anas laiks;
  • NodroÅ”ināta pilna internacionalizācijas un Unicode atbalsta iespēja, pamatojoties uz bibliotēkām ICU (International Components for Unicode), kas ļauj izstrādātājiem rakstÄ«t kodu, kurÅ” atbalsta darbu ar dažādām valodām un lokalizācijām. Modulis full-icu tagad ir uzstādÄ«ts pēc noklusējuma;
  • Stabilizēts API Workers Threads, ļaujot ļauj izveidot daudzplÅ«smu notikumu apstrādes ciklus (event loop). Realizācija balstās uz moduli worker_threads, kas ļauj izpildÄ«t JavaScript kodu vairākās paralēlās plÅ«smās. Stabils atbalsts API Workers Threads arÄ« ir atpakaļportēts uz LTS versiju Node.js 12.x;
  • Palielinātas platformu prasÄ«bas. Tagad bÅ«vējot nepiecieÅ”ams ir nepiecieÅ”ama vismaz macOS 10.11 (nepiecieÅ”ams Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Uzlabota Python 3 atbalsts. Ja sistēmā ir gan Python 2, gan Python 3, joprojām tiek izmantots Python 2, taču pievienota iespēja veikt bÅ«vi, ja sistēmā ir tikai Python 3;
  • Izvērsta vecā HTTP parsera realizācija («—http-parser=legacyĀ»). Noņemti vai pārvērsti par novecojuÅ”iem izsaukumi un Ä«paŔības FSWatcher.prototype.start(), ChildProcess._channel, metode open() ReadStream un WriteStream objektiem, request.connection, response.connection, module.createRequireFromPath();
  • Pēc tam iznāca atjauninājums 13.0.1, kurā nekavējoties novērstas vairākas kļūdas. Ieskaitot problēmu ar brÄ«dinājumu npm 6.12.0 par neatzÄ«tu versiju.

Atgādinām, ka Node.js platforma var tikt izmantota gan servera puses Web lietojumprogrammu apkalpoÅ”anai, gan parasto klientu un servera tÄ«kla programmu izveidei. Lai paplaÅ”inātu Node.js lietojumprogrammu funkcionalitāti, ir sagatavota liela moduļu kolekcija, kurā var atrast moduļus ar HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 serveru un klientu Ä«stenojumiem, integrācijas moduļiem ar dažādiem tÄ«mekļa ietvariem, WebSocket un Ajax apstrādātājiem, savienotājiem uz datubāzēm (MySQL, PostgreSQL, SQLite, MongoDB), Å”ablonēŔanas rÄ«kiem, CSS dzinējiem, kriptogrāfijas algoritmu Ä«stenojumiem un autorizācijas sistēmām (OAuth), XML parsētājiem.

Lai nodroÅ”inātu lielā skaita paralēlo pieprasÄ«jumu apstrādi, Node.js izmanto asinscēŔanas koda izpildes modeli, kas balstās uz notikumu apstrādi bez bloķēŔanas režīmā un callback apstrādātāju noteikÅ”anu. Savienojumu multiplikācija tiek atbalstÄ«ta ar tādām metodēm kā epoll, kqueue, /dev/poll un select. Savienojumu multiplikācijai tiek izmantota bibliotēka libuv, kas ir augstāka virs libev Unix sistēmās un virs IOCP Windows. Datu apstrādes pavedienu grupas (thread pool) izveidei tiek izmantota bibliotēka libeio, lai veiktu DNS pieprasÄ«jumus bez bloķēŔanas režīmā, tiek integrēts c-ares. Visi bloķējoÅ”ie sistēmas izsaukumi tiek izpildÄ«ti pavedienu grupā, un pēc tam, kā arÄ« signālu apstrādātāji, rezultāts tiek nodots atpakaļ caur nemainÄ«gu cauruli (pipe). JavaScript koda izpilde tiek nodroÅ”ināta, izmantojot Google izstrādāto dzinēju V8 (papildu Microsoft attÄ«sta Node.js variantu ar Chakra-Core dzinēju).

VispārÄ«gā izpratnē Node.js ir lÄ«dzÄ«gs ietvariem Perl AnyEvent, Ruby Event Machine, Python Twisted un Ä«stenoÅ”anai Tcl notikumu, tomēr Node.js notikumu apstrādes cikls (event loop) ir slēpts no izstrādātāja un atgādina notikumu apstrādi web lietojumprogrammā, kas darbojas pārlÅ«kprogrammā. Izstrādājot lietojumprogrammas Node.js, ir jāņem vērā notikumu vidē balstÄ«tas programmēŔanas specifika, piemēram, atŔķirÄ«bā no "var result = db.query(ā€žselect..ā€œ);" izpildes ar rezultātu gaidīŔanu un tālāku apstrādi, Node.js izmanto asenkronās izpildes principu, t.i., kods tiek pārveidots uz "db.query(ā€žselect..ā€œ, function (result) { rezultāta apstrāde });" , kur vadÄ«ba nekavējoties pāries pie tālākā koda, bet pieprasÄ«juma rezultāts tiks apstrādāts, tiklÄ«dz dati bÅ«s iegÅ«ti.

Avots: opennet.lv

Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster