Node.js 13.0 serveripÔhise JavaScripti platvormi vÀljaandmine

Saadaval vabastus Node.js 13.0, vÔrgurakenduste kÀitamiseks mÔeldud JavaScripti platvorm. Samal ajal stabiliseeriti eelmine Node.js 12.x versioon, mis on viidud pikaajalise toega vÀljaannete kategooriasse, mille uuendusi antakse vÀlja 4 aastat. Eelmise LTS versiooni Node.js 10.0 tugi kestab aprillini 2021 ja eelneva LTS versiooni 8.0 tugi kestab jaanuarini 2020.

Peamised parandused:

  • V8 mootor on uuendatud versioonile 7.8, kus on kasutusele vĂ”etud uued jĂ”udluse optimeerimise meetodid, paranenud objektide destructuring, vĂ€henenud mĂ€lu tarbimine ja lĂŒhendatud WebAssembly tĂ€itmise ettevalmistamise aega;
  • Vaikimisi on tĂ€ielik rahvusvahelise ja Unicode'i toetus koos raamatukogudega ICU (International Components for Unicode), mis vĂ”imaldab arendajatel kirjutada koodi, mis toetab eri keelte ja kohalike seadete kasutamist. Moodul full-icu on nĂŒĂŒd vaikimisi installitud;
  • Stabiliseeritud API Töötajate lĂ”imud, mis vĂ”imaldab luua mitme lĂ”imega sĂŒndmuste töötlemise tsĂŒkleid (event loop). Teostus pĂ”hineb moodulil worker_threads, mis vĂ”imaldab kĂ€ivitada JavaScripti koodi mitmes paralleelses lĂ”imes. Töötajate lĂ”imude API stabiilne tugi on samuti tagasi portfelli LTS versioonis Node.js 12.x;
  • Platvormide nĂ”uded on tĂ”usnud. NĂŒĂŒd peab kogumine olema on vajalik vĂ€hemalt macOS 10.11 (vajalik Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Parandatud Python 3 tuge. Kui sĂŒsteemis on olemas Python 2 ja Python 3, kasutatakse endiselt Python 2, kuid on lisatud vĂ”imalus koguda ainult Python 3 olemasolul;
  • Eemaldatud vana HTTP-parsija teostus (‘—http-parser=legacy’). Eemaldatud vĂ”i vananenud, FSWatcher.prototype.start() kutsed ja omadused, ChildProcess._channel, meetod open() ReadStream ja WriteStream objektides, request.connection, response.connection, module.createRequireFromPath();
  • JĂ€rgmisel ilmus uuendus 13.0.1, milles kohe pĂ€rast vabastamist parandati mitu tĂ”rget. Sealhulgas on lahendatud probleem, mis tekitas npm 6.12.0 versioonis teate kasutamisest toe sĂ”ltumatust versioonist.

Tuletame meelde, et Node.js platvormi saab kasutada nii veebirakenduste serveripoolseks toetamiseks kui ka tavaliste kliendi- ja serveripoolsete vĂ”rgurakenduste loomiseks. Node.js rakenduste funktsionaalsuse laiendamiseks on ette valmistatud suur moodulite kogum, millest vĂ”ib leida mooduleid HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 serverite ja klientide rakendamiseks, erinevate veebiraamistikudega integreerimise mooduleid, WebSocket ja Ajax töötlejaid, andmebaasihaldussĂŒsteemide (MySQL, PostgreSQL, SQLite, MongoDB) konnektoreid, templating töötlejaid, CSS-ĐŒootoreid, krĂŒptograafiliste algoritmide ja autoriseerimissĂŒsteemide (OAuth) rakendusi, XML-parsereid.

KĂ€ideldes suurt arvu paralleelseid pĂ€ringuid, kasutab Node.js asĂŒnkroonset koodikĂ€itlusmudelit, mis pĂ”hineb mitteblokeerivatel sĂŒndmuste töötlemisel ja callback-töötlejate mÀÀratlemisel. Ühenduste multiplitseerimise meetoditena toetatakse selliseid meetodeid nagu epoll, kqueue, /dev/poll ja select. Ühenduste multiplitseerimiseks kasutatakse raamistikku libuv, mis on kiht libev Unix sĂŒsteemides ja IOCP Windowsis. Kui thread pool'i loomiseks on kasutatud teeki libeio, mittesĂŒnnivĂ€lja DNS-pĂ€ringute tĂ€itmiseks on integreeritud c-ares. KĂ”ik blokeerivaid sĂŒsteemikĂ”nesid, mis vĂ”iksid blokeerida, teostatakse thread pool'is ja seejĂ€rel edastavad nad nagu signaalitöötlejad oma töö tulemuse tagasi anonĂŒĂŒmse toru (pipe) kaudu. JavaScripti koodi tĂ€itmine tagatakse Google'i arendatud mootori kaudu V8 (tĂ€iendavalt arendab Microsoft Node.js-i versiooni koos Chakra-Core mootoriga).

Oma olemuselt on Node.js sarnane raamistikuga Perl AnyEvent, Ruby Event Machine, Python Twisted ja rakendus Tcl-i sĂŒndmusi, kuid Node.js-i sĂŒndmuste töötlemise tsĂŒkkel on arendajalt peidetud ja sarnaneb sĂŒndmuste töötlemisega veebi rakenduses, mis töötab brauseris. Node.js-i jaoks rakenduste kirjutamisel tuleb arvestada sĂŒndmuste jĂ€rgi programmeerimise eripĂ€ra, nĂ€iteks, selle asemel et teostada "var result = db.query('select..');" oodates lĂ”petamist ja seejĂ€rel tulemuste töötlemist, kasutatakse Node.js-is asĂŒnkroonse tĂ€itmise pĂ”himĂ”tet, st kood muudetakse "db.query('select..', function (result) {tulemuse töötlemine});", kusjuures juhtimine lĂ€heb kohe jĂ€rgnevasse koodi, samas kui pĂ€ringu tulemus töödeldakse andmete saabumise korral.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster