Server-side JavaScript Node.js 17.0 kuburitswa

Node.js 17.0, chikuva chekushandisa network application muJavaScript, yakaburitswa. Node.js 17.0 ibazi rinogara richitsigira iro richaramba richiwana zvigadziriso kusvika June 2022. Mumazuva anouya, kudzikamiswa kwebazi reNode.js 16 kuchapedzwa, iyo ichagamuchira LTS mamiriro uye ichatsigirwa kusvika Kubvumbi 2024. Kuchengetwa kwebazi reLTS reNode.js 14.0 richagara kusvika Kubvumbi 2023, uye gore risati rapfuura LTS bazi 12.0 kusvika Kubvumbi 2022.

Mabhindauko makuru:

  • Iyo V8 injini yakagadziridzwa kune vhezheni 9.5.
  • Kuitwa kwekusiyana kweiyo API yakakosha kunoenderana nekushandiswa kwePromise asynchronous computing interface yakaenderera mberi. Kuwedzera kune yakambopihwa Timers Vimbiso uye Streams Promises APIs, Node.js 17.0 inosuma iyo Readline Promise API yekuverenga data mutsara nemutsara uchishandisa iyo yekuverenga module. import * sekuverenga kubva ku 'node:readline/promises'; pinza {stdin sekuisa, stdout sekubuda } kubva 'kuita'; const rl = readline.createInterface ({kupinza, kubuda }); const answer = kumirira rl.question('Unofungei nezveNode.js?'); console.log('Ndinokutendai nemhinduro yako yakakosha: ${answer}'); rl.close();
  • Raibhurari yeOpenSSL yakapihwa yakagadziridzwa kuita vhezheni 3.0 (forogo yequictls/openssl ine QUIC protocol rutsigiro inogoneswa inoshandiswa).
  • Yaita kuti vhezheni yeNode.js iratidzwe mumaturakiti ayo anobuda kana paine kukanganisa kunouraya kunoita kuti chishandiso chipere.

Pamusoro pezvo, tinogona kutaura nezve kubviswa kwekusagadzikana kuviri mumapazi aripo eNode.js (CVE-2021-22959, CVE-2021-22960), izvo zvinoita kuti zvikwanise kuita "HTTP Chikumbiro Smuggling" (HRS) kurwisa, uko. titendere kupinza mukati mezviri mukati mezvikumbiro zvevamwe vashandisi zvakagadziriswa mushinda imwe chete pakati pemberi uye backend (semuenzaniso, yakaipa JavaScript kodhi inogona kuiswa muchikamu chemumwe mushandisi). Tsanangudzo dzicharatidzwa gare gare, asi ikozvino isu tinongoziva chete kuti matambudziko anokonzerwa nekubata zvisirizvo kwenzvimbo pakati pezita remusoro weHTTP nekoloni, pamwe nekubata kwakasiyana kwekutakura kudzoka uye mitsara yekudyisa mavara muparameter block inoshandiswa pakufambisa. muviri wekukumbira muzvikamu mu "chunked" mode "

Rangarira kuti iyo Node.js chikuva inogona kushandiswa zvese kuchengetedza server yeWebhu maapplication uye kugadzira akajairwa mutengi uye server network zvirongwa. Kuti uwedzere kushanda kwezvikumbiro zveNode.js, muunganidzwa wakakura wemamodule wakagadzirirwa, umo iwe unogona kuwana mamodule nekushandiswa kweHTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 maseva uye vatengi, ma module ekubatanidza. ine akasiyana ewebhu masisitimu, WebSocket uye Ajax vanobata, DBMS vanobatanidza (MySQL, PostgreSQL, SQLite, MongoDB), templating injini, CSS injini, kuitiswa kwecrypto algorithms uye mvumo masisitimu (OAuth), XML parsers.

Kuti ive nechokwadi chekugadziriswa kwenhamba huru yezvikumbiro zvakafanana, Node.js inoshandisa asynchronous code execution modhi yakavakirwa pane isiri-kuvhara chiitiko kubata uye tsananguro yevanobata callback. Nzira dzinotsigirwa dzekubatanidza kuwanda ndeye epoll, kqueue, /dev/poll, uye sarudza. Nekubatanidza kuwanda, raibhurari ye libuv inoshandiswa, inova yekuwedzera ye libev pane Unix masisitimu uye IOCP paWindows. Raibhurari yelibeio inoshandiswa kugadzira dziva reshinda, uye c-ares inosanganiswa kuita mibvunzo yeDNS mune isiri-yekuvharisa mode. Yese inofona system inokonzeresa kuvharika inoitwa mukati medziva reshinda uyezve, sevabati vechiratidzo, vanoendesa mhedzisiro yebasa ravo kumashure kuburikidza nepombi isina zita (pombi). Kuitwa kweJavaScript code kunopiwa kuburikidza nekushandiswa kweV8 injini yakagadzirwa neGoogle (nekuwedzera, Microsoft iri kugadzira shanduro yeNode.js neChakra-Core injini).

Pakati payo, Node.js yakafanana nePerl AnyEvent, Ruby Event Machine, Python Twisted frameworks, uye Tcl chiitiko chekuita, asi chiitiko loop muNode.js yakavanzwa kubva kumugadziri uye yakafanana nekubata chiitiko muwebhu application inoshanda. mubrowser. Paunenge uchinyora zvikumbiro zve node.js, iwe unofanirwa kufunga nezve chaiyo-inofambiswa nechiitiko chirongwa, semuenzaniso, pane kuita "var result = db.query("select..");" nekumirira kupedzwa kwebasa uye kunotevera kugadziriswa kwemigumisiro, Node.js inoshandisa nheyo yeasynchronous execution, i.e. iyo code inoshandurwa kuita "db.query("select..", function (result) {result processing});", umo kutonga kuchapfuura pakarepo kune imwe kodhi, uye mhinduro yemubvunzo ichagadziriswa kana data yasvika.

Source: opennet.ru

Voeg