Serbestberdana platforma JavaScript-a server-side Node.js 17.0

Node.js 17.0, platformek ji bo xebitandina sepanên torê di JavaScript de, hate berdan. Node.js 17.0 şaxek piştgirî ya birêkûpêk e ku dê heya Hezîrana 2022-an nûvekirinan bigire. Di rojên pêş de, stabîlkirina şaxê Node.js 16 dê biqede, ku dê statûya LTS bistîne û dê heya Avrêl 2024 were piştgirî kirin. Lênêrîna şaxa LTS ya berê ya Node.js 14.0 dê heya Nîsana 2023-an, û sala berî şaxê LTS-ya paşîn 12.0 heya Avrêl 2022 bidome.

Pêşveçûnên sereke:

  • Motora V8 ji bo guhertoya 9.5-ê hatî nûve kirin.
  • Pêkanîna guhertoyên API-ya bingehîn a ku li ser bingeha karanîna navgîniya hesabkirina asynchronous Promise-yê ye, berdewam kir. Ji bilî API-yên Timers Promises û Streams Promises ên berê hatine pêşkêş kirin, Node.js 17.0 API-ya Readline Promise ji bo xwendina daneyan rêz bi rêz bi karanîna modula xwendinê destnîşan dike. import * wek xêza xwendinê ji 'node:raadline/promises'; import { stdin wekî têketin, stdout wekî encam } ji 'pêvajoyê'; const rl = readline.createInterface({ ketin, derketin }); const bersiv = li benda rl.question ('Hûn ji Node.js çi difikirin?'); console.log('Spas ji bo nerînên we yên hêja: ${answer}'); rl.close();
  • Pirtûkxaneya OpenSSL-ya hatî peyda kirin ji bo guhertoya 3.0-ê hate nûve kirin (çarçoveyek quictls/openssl ya ku piştgirîya protokola QUIC-ya çalakkirî tê bikar anîn).
  • Guhertoya Node.js çalak kir ku di şopên stûnê de ku derdikevin holê di doza xeletiyên kujer ên ku dibin sedema bidawîbûna sepanê de were xuyang kirin.

Wekî din, em dikarin behsa rakirina du qelsiyên di şaxên heyî yên Node.js (CVE-2021-22959, CVE-2021-22960) bikin, yên ku gengaz dike ku meriv êrişên "Qaçaxçîtiya Daxwaza HTTP" (HRS) pêk bîne. rê bidin me ku em naverokên daxwazên bikarhênerên din ên ku di heman mijarê de di navbera paşîn û paşîn de têne hilanîn (mînakek, koda JavaScriptê ya xerab dikare di danişîna bikarhênerek din de were bicîh kirin) veşêre. Dê hûrgulî paşê bêne eşkere kirin, lê heya nuha em tenê dizanin ku pirsgirêk ji ber nerastkirina cîhên di navbera navê sernavê HTTP û kolonê de, û her weha bi rêvekirina cihêreng a vegera gerîdeyê û karakterên xwarina rêzê di bloka parametreyê de ku di dema veguheztinê de tê bikar anîn têne çêkirin. laşê daxwazê ​​di beşan de di moda "qirkirî" de "

Werin em bînin bîra xwe ku platforma Node.js hem ji bo piştgirîya server-aliyê serîlêdanên Webê hem jî ji bo afirandina bernameyên torê yên xerîdar û serverê yên asayî dikare were bikar anîn. Ji bo berfirehkirina fonksiyona sepanan ji bo Node.js, berhevokek mezin a modulan hatiye amadekirin, ku tê de hûn dikarin modulên bi pêkanîna HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 pêşkêşker û xerîdar, modulên ji bo yekbûnê bibînin. bi çarçoveyên cûrbecûr malperê, rêvebirên WebSocket û Ajax, girêdanên DBMS (MySQL, PostgreSQL, SQLite, MongoDB), motorên şablonê, motorên CSS, pêkanînên algorîtmayên krîptografî û pergalên destûrnameyê (OAuth), parserên XML.

Ji bo ku pêvajokirina hejmareke mezin ji daxwazên paralel pêk were, Node.js modelek darvekirina kodê ya asynchronous li ser bingeha destwerdana bûyera ne-astengker û pênase rêvekerên vegerandina bangê bikar tîne. Rêbazên piştgirî ji bo girêdanên piralî epoll, kqueue, / dev/poll, û hilbijartî ne. Ji bo piralîkirina girêdanê, pirtûkxaneya libuv tê bikar anîn, ku ji bo libev li ser pergalên Unix û IOCP li ser Windows-ê pêvekek e. Pirtûkxaneya libeio ji bo afirandina hewzek tîrêjê tê bikar anîn, û c-ares ji bo pêkanîna pirsên DNS-ê di moda ne-astengkirinê de tête yek kirin. Hemî bangên pergalê yên ku dibin sedema astengkirinê di hundurê hewza tîrêjê de têne darve kirin û dûv re, mîna hilgirên sînyalê, encama xebata xwe bi boriyek (boriyek) nenavkirî veguhezînin. Bicîhkirina koda JavaScriptê bi karanîna motora V8 ya ku ji hêla Google ve hatî pêşve xistin ve tê peyda kirin (ji bilî vê, Microsoft guhertoyek Node.js bi motora Chakra-Core ve pêşve dike).

Di bingeha xwe de, Node.js dişibihe Perl AnyEvent, Ruby Event Machine, çarçoveyên Python Twisted, û pêkanîna bûyera Tcl-ê, lê lûleya bûyerê li Node.js ji pêşdebiran veşartî ye û dişibe birêvebirina bûyerê di serîlêdana tevnerê de ku dixebite. di gerokê de. Dema ku serîlêdanan ji bo node.js dinivîsin, hûn hewce ne ku hûn taybetmendiyên bernamesaziya bûyer-rêveberê binirxînin, mînakî, li şûna ku hûn "var result = db.query("hilbijêre..");" digel li benda qedandina kar û dûv re hilberandina encaman, Node.js prensîba darvekirina asynchronous bikar tîne, ango. kod tê guheztin "db.query("hilbijêre..", fonksiyona (encam) {pêvajoya encam});", ku tê de kontrol dê tavilê derbasî koda din bibe, û encama pirsê dê wekî daneyan were hilberandin.

Source: opennet.ru

Add a comment