Serveripoolne JavaScript Node.js 13.0 väljalase

Saadaval vabastama Sõlm.js 13.0,platvormid võrgurakenduste käitamiseks JavaScriptis. Samal ajal on lõpetatud Node.js 12.x eelmise haru stabiliseerimine, mis on viidud pikaajaliste tugiväljaannete kategooriasse, mille värskendusi antakse välja 4 aastaks. Node.js 10.0 eelmise LTS-haru tugi kestab 2021. aasta aprillini ja viimase LTS-i haru 8.0 tugi kuni 2020. aasta jaanuarini.

Kõik täiustused:

  • V8 mootor värskendati versioonile 7.8, mis kasutab uusi jõudluse optimeerimise tehnikaid, parandab objektide struktureerimist, vähendab mälutarbimist ja vähendab WebAssembly täitmiseks ettevalmistusaega;
  • Vaikimisi on lubatud täielik rahvusvahelistumise ja teegipõhise Unicode'i tugi Intensiivraviosakonnas (Unicode'i rahvusvahelised komponendid), mis võimaldab arendajatel koodi kirjutada toetav töötada erinevate keelte ja asukohtadega. Täis-icu moodul on nüüd vaikimisi installitud;
  • API stabiliseeritud Tööliste niidid, lubades luua mitme lõimega sündmuste silmuseid. Rakendus põhineb moodulil worker_threads, mis võimaldab käivitada JavaScripti koodi mitmes paralleelses lõimes. Workers Threads API stabiilne tugi on samuti tagasiportitud Node.js 12.x LTS-i harule;
  • Platvormidele esitatavaid nõudeid on tõstetud. Kohe kokkupanekuks nõutav vähemalt macOS 10.11 (vaja on Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Täiustatud tugi Python 3-le. Kui süsteemis on nii Python 2 kui ka Python 3, kasutatakse endiselt Python 2, kuid on lisatud võimalus ehitada, kui süsteemi on installitud ainult Python 3;
  • HTTP-parseri vana rakendus (“—http-parser=legacy”) on eemaldatud. Eemaldatud või aegunud kõned ja omadused FSWatcher.prototype.start(), ChildProcess._channel, open() meetod ReadStream ja WriteStream objektides, request.connection, response.connection, module.createRequireFromPath();
  • Järgmine selgus värskendus 13.0.1, mis parandas kiiresti mitu viga. Eelkõige on lahendatud probleem npm 6.12.0-ga, mis kuvab hoiatuse toetamata versiooni kasutamise kohta.

Meenutagem, et Node.js platvormi saab kasutada nii veebirakenduste serveripoolseks toeks kui ka tavaliste kliendi- ja serverivõrguprogrammide loomiseks. Node.js-i rakenduste funktsionaalsuse laiendamiseks on suur hulk moodulite kogu, millest leiate moodulid serverite ja klientide juurutamisega HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moodulid integreerimiseks erinevate veebiraamistikega, WebSocket ja Ajaxi töötlejad, konnektorid DBMS-iga (MySQL, PostgreSQL, SQLite , MongoDB), mallimootorid, CSS-mootorid, krüptoalgoritmide ja autoriseerimissüsteemide (OAuth) juurutused, XML-parserid.

Suure hulga paralleelsete päringute käsitlemiseks kasutab Node.js asünkroonse koodi täitmismudelit, mis põhineb sündmuste mitteblokeerimisel töötlemisel ja tagasihelistamise töötlejate määratlemisel. Ühenduste multipleksimise toetatud meetodid on epoll, kqueue, /dev/poll ja select. Teeki kasutatakse multipleksimiseks libuv, mis on pealisehitus üle libev Unixi süsteemides ja IOCP kaudu Windowsis. Teeki kasutatakse lõimekogumi loomiseks libeio, DNS-päringute sooritamiseks mitteblokeerivas režiimis on integreeritud c-ares. Kõik blokeerimist põhjustavad süsteemikutsed teostatakse lõimekogumis ja seejärel edastavad sarnaselt signaalikäsitlejatele oma töö tulemuse nimetu toru kaudu tagasi. JavaScripti koodi täitmine on tagatud Google’i poolt arendatud mootori kasutamisega V8 (Lisaks arendab Microsoft Chakra-Core mootoriga Node.js-i versiooni).

Oma põhiolemuselt sarnaneb Node.js raamistikega Perl AnyEvent, Ruby sündmuste masin, Python Twisted и rakendamine sündmused Tcl-is, kuid Node.js-i sündmusesilmus on arendaja eest peidetud ja sarnaneb sündmuste käsitlemisega brauseris töötavas veebirakenduses. Node.js rakenduste kirjutamisel tuleb arvestada näiteks sündmustepõhise programmeerimise spetsiifikaga, selle asemel, et teha “var result = db.query(“select..”);” töö valmimise ootamisega ja sellele järgneva tulemuste töötlemisega kasutab Node.js asünkroonse täitmise põhimõtet, st. kood teisendatakse "db.query("select..", funktsioon (tulemus) {tulemuse töötlemine});", milles juhtimine läheb kohe edasi edasisele koodile ja päringu tulemust töödeldakse andmete saabudes. .

Allikas: opennet.ru

Lisa kommentaar