Utjefte fan JavaSkript-platfoarm oan serverside Node.js 13.0

Beskikber frijlitte Node.js 13.0,platfoarms foar it útfieren fan netwurkapplikaasjes yn JavaScript. Tagelyk is de stabilisaasje fan 'e foarige tûke fan Node.js 12.x foltôge, dy't oerdroegen is oan' e kategory fan lange-termyn stipe releases, updates foar dy't foar 4 jier frijlitten wurde. Stipe foar de foarige LTS-tûke fan Node.js 10.0 sil duorje oant april 2021, en stipe foar de lêste LTS-tûke 8.0 oant jannewaris 2020.

haad ferbetterings:

  • V8 motor fernijd nei ferzje 7.8, dy't brûkt nije prestaasje optimization techniken, ferbetteret objekt destructuring, ferminderet ûnthâld konsumpsje, en ferminderet tarieding tiid foar WebAssembly útfiering;
  • Folsleine stipe foar ynternasjonalisearring en biblioteek-basearre Unicode is standert ynskeakele ICU (Ynternasjonale komponinten foar Unicode), wêrtroch ûntwikkelders koade kinne skriuwe stypjend wurkje mei ferskate talen en lokaasjes. De folsleine-icu-module is no standert ynstalleare;
  • API stabilisearre Workers Threads, talitte meitsje multi-threaded evenemint loops. De ymplemintaasje is basearre op de worker_threads-module, wêrtroch jo JavaScript-koade kinne útfiere yn meardere parallelle threads. Stabile stipe foar de Workers Threads API is ek backported nei de LTS-tûke fan Node.js 12.x;
  • De easken foar platfoarms binne ferhege. Foar montage no ferplicht op syn minst macOS 10.11 (fereasket Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Ferbettere stipe foar Python 3. As it systeem hat sawol Python 2 as Python 3, Python 2 wurdt noch brûkt, mar de mooglikheid om te bouwen as allinnich Python 3 is ynstallearre op it systeem is tafoege;
  • De âlde ymplemintaasje fan de HTTP-parser ("—http-parser=legacy") is fuortsmiten. Fuortsmite of ferâldere oproppen en eigenskippen FSWatcher.prototype.start (), ChildProcess._channel, iepen () metoade yn ReadStream en WriteStream objekten, request.connection, response.connection, module.createRequireFromPath ();
  • Folgje kaam út update 13.0.1, dy't fluch ferskate bugs repareare. Benammen it probleem mei npm 6.12.0 dy't in warskôging werjaan oer it brûken fan in net-stipe ferzje is oplost.

Lit ús ûnthâlde dat it Node.js-platfoarm kin brûkt wurde sawol foar serverside-stipe fan webapplikaasjes en foar it meitsjen fan gewoane client- en servernetwurkprogramma's. Om útwreidzje de funksjonaliteit fan applikaasjes foar Node.js, in grut oantal kolleksje fan modules, wêryn jo modules kinne fine mei de ymplemintaasje fan servers en kliïnten HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, modules foar yntegraasje mei ferskate webframes, WebSocket- en Ajax-hannelers, ferbiningen nei DBMS (MySQL, PostgreSQL, SQLite , MongoDB ), sjabloanmotoren, CSS-motoren, ymplemintaasjes fan kryptografyske algoritmen en autorisaasjesystemen (OAuth), XML-parsers.

Foar in omgean grutte oantallen parallelle fersiken, Node.js brûkt in asynchronous koade útfiering model basearre op net-blokkearjende evenemint ferwurking en definiearje callback handlers. Stipe metoaden foar multiplexing ferbinings omfetsje epoll, kqueue, /dev/poll, en selektearje. De bibleteek wurdt brûkt om ferbiningen te multiplexen libuv, dat is in boppebou oer libev op Unix-systemen en oer IOCP op Windows. In bibleteek wurdt brûkt om in thread pool te meitsjen libeio, foar it útfieren fan DNS-fragen yn net-blokkearjende modus is yntegrearre c-oar. Alle systeemoproppen dy't blokkearje feroarsaakje, wurde útfierd binnen de threadpool en passe dan, lykas sinjaalbehannelers, it resultaat fan har wurk werom troch in net neamde piip. Utfiering fan JavaScript-koade wurdt garandearre troch it brûken fan in motor ûntwikkele troch Google V8 (Dêrneist ûntwikkelet Microsoft in ferzje fan Node.js mei de Chakra-Core-motor).

Yn har kearn is Node.js fergelykber mei kaders Perl AnyEvent, Ruby Event Machine, Python Twisted и útfiering eveneminten yn Tcl, mar de barrenslus yn Node.js is ferburgen foar de ûntwikkelder en liket op evenemintehanneling yn in webapplikaasje dy't rint yn in browser. By it skriuwen fan applikaasjes foar node.js, is it nedich om rekken te hâlden mei de spesifikaasjes fan evenemint-oandreaune programmearring, bygelyks, ynstee fan te dwaan "var result = db.query ("selektearje..");" mei wachtsjen op it foltôgjen fan wurk en de folgjende ferwurking fan 'e resultaten, brûkt Node.js it prinsipe fan asynchrone útfiering, d.w.s. de koade wurdt omfoarme ta "db.query ("selektearje ..", funksje (resultaat) {resultaat ferwurking});", wêryn kontrôle sil daliks trochjaan oan fierdere koade, en de query resultaat wurdt ferwurke as gegevens oankomme. .

Boarne: opennet.ru

Add a comment