askatu ,JavaScript-en sareko aplikazioak exekutatzeko plataformak. Node.js 14.0 epe luzerako laguntza-adarra da, baina egoera hori urrian bakarrik esleituko da, egonkortu ondoren. Node.js 14.0 onartuko da 2023ko apirilera arte. Node.js 12.0-ren aurreko LTS adarraren mantentze-lanak 2022ko apirilera arte iraungo du, eta azken aurreko urteko LTS 10.0 adarra arte 2021eko apirilera arte. 13.x eszenatze-adarraren laguntza aurtengo ekainean amaituko da.
Nagusia :
- Egonkortu egin da edo gertaera batzuk gertatzen direnean sortzeko gaitasuna , arazoak diagnostikatzen laguntzen duten gertaerak bistaratzen dituztenak, hala nola hutsegiteen, errendimenduaren degradazioa, memoria ihesak, CPU karga handia, ustekabeko erroreen irteera, etab.
- API esperimentalaren euskarria gehitu da AsyncLocalStorage klasearen inplementazioarekin, egoera asinkronoa sortzeko erabil daitekeen itzulera deietan eta promesetan oinarritutako kudeatzaileekin. AsyncLocalStorage-k web-eskaera bat prozesatzen ari den bitartean datuak gordetzeko aukera ematen du, beste hizkuntza batzuetan hari lokaleko biltegiratzea gogorarazten duena.
- Kargatzean eginbide esperimentalari buruzko abisu-mezua kendu da konektatu eta esportatu inportazio eta esportazio adierazpenak erabiliz. Aldi berean, ESM moduluen ezarpena bera esperimentala izaten jarraitzen du.
- V8 motorra bertsiora eguneratu da (, , ), errendimenduaren optimizazio eta eginbide berriak barne hartzen dituena, hala nola "???" kateatze-operadore logiko berria. (eskuineko eragiketa itzultzen du ezkerreko eragiketa NULL edo definitu gabea bada, eta alderantziz), "?." eragilea propietate edo deien kate osoaren behin-behineko egiaztapenerako (adibidez, “db?.user?.name?.length” aurretiazko egiaztapenik gabe), Intl.DisplayName metodoa lokalizatutako izenak lortzeko, etab.
- Streams APIaren berrikuspena egin zen, Streams APIen koherentzia hobetzera eta Node.js-en oinarrizko zatien portaeran dauden desberdintasunak ezabatzera zuzenduta. Adibidez, http.OutgoingMessage-ren portaera korrontetik hurbil dago.Idatzigarria, eta net.Socket korrontearen antzekoa da.Duplex. AutoDestroy aukera lehenespenez "egia" gisa ezartzen da, hau da, amaitzean "_destroy" deitzen dela esan nahi du.
- API esperimentalaren euskarria gehitu da (), sistema eragilearekin zuzeneko interakziorako software interfazeak eskainiz (fitxategiekin, socketekin, etab. lantzeko POSIX APIa).
- Eskakizunak areagotzea konpiladoreak eta plataformak: macOS 10.13 (Goi Sierra), GCC 6, .
Gogora dezagun Node.js plataforma web aplikazioen zerbitzariaren laguntzarako zein bezero eta zerbitzari sareko programa arruntak sortzeko erabil daitekeela. Node.js aplikazioen funtzionaltasuna zabaltzeko, kopuru handi bat , zeinetan HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 zerbitzari eta bezeroen ezarpenarekin moduluak aurki ditzakezu, hainbat web esparrurekin integratzeko moduluak, WebSocket eta Ajax kudeatzaileak, DBMSrako konektoreak (MySQL, PostgreSQL, SQLite). , MongoDB ), txantiloi-motorrak, CSS motorrak, algoritmo kriptografikoen eta baimen-sistemen inplementazioak (OAuth), XML analizatzaileak.
Eskaera paralelo ugari kudeatzeko, Node.js-ek kode asinkronoaren exekuzio-eredu bat erabiltzen du blokeatzen ez den gertaeren prozesamenduan eta dei-itzuliaren kudeatzaileak definitzean oinarrituta. Konexioak multiplexatzeko onartzen diren metodoak honako hauek dira: epoll, kqueue, /dev/poll eta select. Liburutegia konexioak multiplexatzeko erabiltzen da , gainegitura bat dena Unix sistemetan eta IOCP bidez WindowsLiburutegi bat erabiltzen da hari-multzo bat sortzeko. , blokeorik gabeko moduan DNS kontsultak egiteko integratuta dago . Blokeoa eragiten duten sistema-dei guztiak hari multzoan exekutatzen dira eta gero, seinale-kudeatzaileek bezala, beren lanaren emaitza izenik gabeko kanalizazio batetik itzultzen dute. JavaScript kodearen exekuzioa Googlek garatutako motor baten bidez bermatzen da (Gainera, Microsoft Node.js bertsio bat garatzen ari da Chakra-Core motorrekin).
Bere oinarrian, Node.js markoen antzekoa da , , и gertaerak Tcl-n, baina Node.js-en gertaeren begizta garatzaileari ezkutatuta dago eta arakatzaile batean exekutatzen den web aplikazio bateko gertaeren kudeaketaren antza du. Node.js-erako aplikazioak idaztean, gertaeren araberako programazioaren berezitasunak kontuan hartu behar dira, adibidez, “var result = db.query(“select..”);” egin beharrean. lana amaitu eta ondorengo emaitzen prozesamenduaren zain egonda, Node.js-ek exekuzio asinkronoaren printzipioa erabiltzen du, hau da. kodea "db.query("hautatu..", funtzioa (emaitza) {emaitza prozesatzea}) bihurtzen da, eta bertan kontrola berehala pasako da kode gehiagora, eta kontsultaren emaitza datuak iristen diren heinean prozesatu egingo da. .
Iturria: opennet.ru
