Zerbitzariaren aldeko JavaScript Node.js 13.0 bertsioa

Eskuragarri askatu Node.js 13.0,JavaScript-en sareko aplikazioak exekutatzeko plataformak. Aldi berean, Node.js 12.x-en aurreko adarraren egonkortzea amaitu da, epe luzerako laguntza-oharra kategoriara pasatu dena, eguneraketak 4 urtez kaleratzen baitira. Node.js 10.0-ren aurreko LTS adarraren laguntza 2021eko apirilera arte iraungo du eta azken LTS adarraren 8.0rako laguntza 2020ko urtarrilera arte.

Nagusia hobekuntzak:

  • V8 motorra bertsiora eguneratu da 7.8, errendimendua optimizatzeko teknika berriak erabiltzen dituena, objektuen desegituraketa hobetzen du, memoria-kontsumoa murrizten du eta WebAssembly exekutatzeko prestatzeko denbora murrizten du;
  • Nazioartekotzea eta liburutegian oinarritutako Unicoderako laguntza osoa gaituta dago lehenespenez ZIU (Unicoderako Nazioarteko Osagaiak), garatzaileei kodea idazteko aukera ematen diena solidarioa hizkuntza eta toki ezberdinekin lan egin. Full-icu modulua lehenespenez instalatuta dago orain;
  • API egonkortuta Langileen hariak, ahalbidetuz sortu hari anitzeko gertaeren begiztak. Inplementazioa worker_threads moduluan oinarritzen da, JavaScript kodea hainbat hari paralelotan exekutatzeko aukera ematen duena. Workers Threads APIrako laguntza egonkorra ere atzera eraman da Node.js 12.x-en LTS adarrera;
  • Plataformen eskakizunak areagotu egin dira. Orain muntatzeko beharrezkoa gutxienez macOS 10.11 (Xcode 10 behar du), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Python 3rako euskarria hobetua. Sistemak Python 2 eta Python 3 baditu, Python 2 erabiltzen da oraindik, baina sisteman Python 3 bakarrik instalatuta dagoenean eraikitzeko gaitasuna gehitu da;
  • HTTP analizatzailearen inplementazio zaharra ("β€”http-parser=legacy") kendu da. FSWatcher.prototype.start(), ChildProcess._channel, open() metodoa ReadStream eta WriteStream objektuetan deiak eta propietateak kendu edo zaharkituta, request.connection, response.connection, module.createRequireFromPath();
  • Jarraian atera zen 13.0.1 eguneratzea, hainbat akats azkar konpondu zituena. Bereziki, npm 6.12.0-k onartzen ez duen bertsio bat erabiltzeari buruzko abisua bistaratzen duen arazoa konpondu da.

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 moduluen bilduma, 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 libuv, gainegitura bat dena libev Unix sistemetan eta IOCP bidez Windows-en. Liburutegi bat hari multzo bat sortzeko erabiltzen da libeio, blokeorik gabeko moduan DNS kontsultak egiteko integratuta dago c-areak. 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 V8 (Gainera, Microsoft Node.js bertsio bat garatzen ari da Chakra-Core motorrekin).

Bere oinarrian, Node.js markoen antzekoa da Perl AnyEvent, Ruby Gertaeraren Makina, Python Twisted ΠΈ ezarpena 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

Gehitu iruzkin berria