Pagpagawas sa server-side nga JavaScript platform nga Node.js 13.0

Magamit buhian Node.js 13.0, mga plataporma alang sa pagpadagan sa mga aplikasyon sa network sa JavaScript. Sa samang higayon, ang pagpalig-on sa miaging sanga sa Node.js 12.x nahuman na, nga gibalhin ngadto sa kategoriya sa mga long-term nga pagpagawas sa suporta, ang mga update nga gipagawas sulod sa 4 ka tuig. Ang suporta alang sa miaging LTS nga sanga sa Node.js 10.0 molungtad hangtod Abril 2021, ug suporta alang sa katapusan nga LTS nga sanga 8.0 hangtod Enero 2020.

nag-unang mga kalamboan:

  • Ang makina sa V8 gi-update sa bersyon 7.8, nga naggamit sa bag-ong mga pamaagi sa pag-optimize sa pasundayag, nagpauswag sa pagkaguba sa butang, nagpakunhod sa konsumo sa panumduman, ug nagpamenos sa oras sa pagpangandam alang sa pagpatuman sa WebAssembly;
  • Ang bug-os nga suporta para sa internationalization ug library-based Unicode gi-enable pinaagi sa default ICU (International Components para sa Unicode), nga nagtugot sa mga developers sa pagsulat sa code matinabangon pagtrabaho uban sa lain-laing mga pinulongan ug mga lokal. Ang full-icu module kay gi-install na pinaagi sa default;
  • Gi-stabilize ang API Mga Thread sa Trabaho, pagtugot paghimo og multi-threaded event loops. Ang pagpatuman gibase sa worker_threads module, nga nagtugot kanimo sa pagpadagan sa JavaScript code sa daghang parallel threads. Ang lig-on nga suporta alang sa Workers Threads API gi-backport usab sa LTS nga sanga sa Node.js 12.x;
  • Ang mga kinahanglanon alang sa mga plataporma nadugangan. Para sa asembliya karon gikinahanglan labing menos macOS 10.11 (nagkinahanglan Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Gipauswag nga suporta alang sa Python 3. Kung ang sistema adunay Python 2 ug Python 3, gigamit gihapon ang Python 2, apan ang abilidad sa pagtukod kung ang Python 3 ra ang na-install sa sistema gidugang;
  • Ang daan nga pagpatuman sa HTTP parser (“—http-parser=legacy”) gitangtang na. Gitangtang o giwagtang ang mga tawag ug mga kabtangan FSWatcher.prototype.start(), ChildProcess._channel, open() nga pamaagi sa ReadStream ug WriteStream nga mga butang, request.connection, response.connection, module.createRequireFromPath();
  • Nagsunod nigawas update 13.0.1, nga dali nga nag-ayo sa daghang mga bug. Sa partikular, ang problema sa npm 6.12.0 nga nagpakita sa usa ka pasidaan mahitungod sa paggamit sa usa ka dili suportadong bersyon nasulbad na.

Atong hinumdoman nga ang Node.js nga plataporma mahimong magamit alang sa server-side nga suporta sa mga aplikasyon sa Web ug alang sa pagmugna og ordinaryo nga kliyente ug mga programa sa network sa server. Aron mapalapad ang gamit sa mga aplikasyon alang sa Node.js, daghang gidaghanon sa koleksyon sa mga module, diin makit-an nimo ang mga module nga adunay pagpatuman sa mga server ug kliyente HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, mga module alang sa pag-integrate sa lainlaing mga web frameworks, WebSocket ug Ajax handler, konektor sa DBMS (MySQL, PostgreSQL, SQLite , MongoDB ), template engine, CSS engine, pagpatuman sa cryptographic algorithms ug authorization system (OAuth), XML parser.

Aron madumala ang daghang gidaghanon sa parallel nga mga hangyo, ang Node.js naggamit ug asynchronous code execution model base sa dili pag-block sa pagproseso sa panghitabo ug pagdeterminar sa mga callback handler. Gisuportahan nga mga pamaagi alang sa multiplexing nga mga koneksyon naglakip sa epoll, kqueue, / dev / poll, ug pagpili. Ang librarya gigamit sa multiplex nga mga koneksyon libuv, nga usa ka superstructure sa ibabaw libev sa mga sistema sa Unix ug sa ibabaw sa IOCP sa Windows. Usa ka librarya ang gigamit sa paghimo og thread pool libeio, alang sa paghimo sa DNS nga mga pangutana sa non-blocking mode gisagol c-ares. Ang tanan nga mga tawag sa sistema nga hinungdan sa pag-block gipatuman sulod sa thread pool ug dayon, sama sa mga tigdumala sa signal, ipasa ang resulta sa ilang trabaho balik pinaagi sa wala hinganli nga tubo. Ang pagpatuman sa JavaScript code gisiguro pinaagi sa paggamit sa usa ka makina nga gihimo sa Google V8 (Dugang pa, ang Microsoft nagpalambo sa usa ka bersyon sa Node.js nga adunay Chakra-Core nga makina).

Sa kinauyokan niini, ang Node.js susama sa mga frameworks Perl AnyEvent, Ruby Event Machine, Python Twisted и pagpatuman mga panghitabo sa Tcl, apan ang event loop sa Node.js gitago gikan sa developer ug susama sa pagdumala sa panghitabo sa usa ka web application nga nagdagan sa usa ka browser. Sa pagsulat sa mga aplikasyon alang sa node.js, kinahanglan nga tagdon ang mga detalye sa programa nga gipalihok sa panghitabo, pananglitan, imbes nga buhaton ang "var result = db.query("pilia..");" uban sa paghulat sa pagkompleto sa trabaho ug sa sunod nga pagproseso sa mga resulta, ang Node.js naggamit sa prinsipyo sa asynchronous execution, i.e. ang code giusab ngadto sa "db.query("select..", function (resulta) {result processing});", diin ang kontrol moagi dayon ngadto sa dugang nga code, ug ang resulta sa pangutana maproseso sa pag-abot sa datos. .

Source: opennet.ru

Idugang sa usa ka comment