Sèvè-bò JavaScript Node.js 17.0 lage

Node.js 17.0, yon platfòm pou kouri aplikasyon rezo nan JavaScript, te lage. Node.js 17.0 se yon branch sipò regilye ki pral kontinye resevwa mizajou jiska jen 2022. Nan jou kap vini yo, estabilizasyon Node.js 16 branch yo pral konplete, ki pral resevwa estati LTS epi yo pral sipòte jiska avril 2024. Antretyen branch LTS anvan Node.js 14.0 pral dire jiska avril 2023, ak ane anvan dènye branch LTS 12.0 jiska avril 2022.

Gwo amelyorasyon:

  • Motè V8 la te mete ajou nan vèsyon 9.5.
  • Aplikasyon an nan varyant API debaz la ki baze sou itilizasyon koòdone enfòmatik asynchrone Promise la kontinye. Anplis API Timers Promises ak Streams Promises yo te ofri deja, Node.js 17.0 prezante API Readline Promise pou li done liy pa liy lè l sèvi avèk modil readline la. enpòte * kòm readline soti nan 'node:readline/promises'; enpòte { stdin kòm opinyon, stdout kòm pwodiksyon } soti nan 'pwosesis'; const rl = readline.createInterface ({ input, output }); const repons = tann rl.question('Kisa ou panse de Node.js?'); console.log('Mèsi pou fidbak enpòtan ou: ${repons}'); rl.close();
  • Bibliyotèk OpenSSL apwovizyone a te mete ajou nan vèsyon 3.0 (yon fouchèt quictls/openssl ak sipò pwotokòl QUIC pèmèt).
  • Pèmèt vèsyon an Node.js yo dwe parèt nan tras chemine ki pwodiksyon an ka ta gen erè fatal ki lakòz aplikasyon an sispann.

Anplis de sa, nou ka mansyone eliminasyon de frajilite nan branch aktyèl Node.js (CVE-2021-22959, CVE-2021-22960), ki fè li posib pou fè atak "HTTP Request Smuggling" (HRS), ki pèmèt nou rantre nan sa ki nan demann lòt itilizatè yo trete nan menm fil ant frontend ak backend (pa egzanp, kòd JavaScript move ka antre nan sesyon yon lòt itilizatè). Detay yo pral revele pita, men pou kounye a nou sèlman konnen ke pwoblèm yo se koze pa kòrèk manyen nan espas ant non an header HTTP ak kolon an, osi byen ke manyen diferan nan retou cha ak karaktè liy manje nan blòk la paramèt yo itilize lè transmèt. kò demann lan an pati nan mòd "chanked" "

Se pou nou sonje ke platfòm Node.js la ka itilize tou de pou sipò bò sèvè nan aplikasyon entènèt ak pou kreye kliyan òdinè ak pwogram rezo sèvè. Pou elaji fonksyonalite aplikasyon pou Node.js, yo te prepare yon gwo koleksyon modil, kote ou ka jwenn modil ak aplikasyon HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 serveurs ak kliyan, modil pou entegrasyon. ak plizyè kad entènèt, WebSocket ak Ajax, konektè nan DBMS (MySQL, PostgreSQL, SQLite, MongoDB), motè modèl, motè CSS, aplikasyon algoritm kriptografik ak sistèm otorizasyon (OAuth), analizeur XML.

Pou okipe yon gwo kantite demann paralèl, Node.js sèvi ak yon modèl ekzekisyon kòd asynchrone ki baze sou pwosesis evènman ki pa bloke ak defini moun kap okipe apèl. Metòd ki sipòte pou koneksyon multiplexage yo enkli epoll, kqueue, /dev/poll, epi chwazi. Pou koneksyon multiplexing, yo itilize bibliyotèk libuv la, ki se yon sipleman libev sou sistèm Unix ak IOCP sou Windows. Libeio bibliyotèk la itilize pou kreye yon pisin fil, epi c-ares entegre pou fè demann DNS nan yon mòd ki pa bloke. Tout apèl sistèm ki lakòz bloke yo egzekite nan pisin fil la epi answit, tankou moun k ap okipe siyal yo, pase rezilta travay yo tounen nan yon tiyo san non. Egzekisyon kòd JavaScript asire atravè itilizasyon motè V8 Google devlope (anplis de sa, Microsoft ap devlope yon vèsyon Node.js ak motè Chakra-Core).

Nan nwayo li yo, Node.js sanble ak Perl AnyEvent, Ruby Evènman Machine, Python Twisted kad ak aplikasyon evènman nan Tcl, men bouk evènman an nan Node.js kache nan pwomotè a epi li sanble ak pwosesis evènman nan yon aplikasyon entènèt. kouri nan navigatè a. Lè w ap ekri aplikasyon pou node.js, li nesesè pou w pran an kont spesifik pwogramasyon ki baze sou evènman an, pa egzanp, olye pou w fè "var result = db.query ("select..");" ak ap tann pou fini an nan travay ak pwosesis ki vin apre nan rezilta yo, Node.js sèvi ak prensip la nan ekzekisyon asynchrone, i.e. se kòd la transfòme nan "db.query ("select..", fonksyon (rezilta) {pwosesis rezilta});", nan ki kontwòl pral imedyatman pase nan plis kòd, epi rezilta rechèch la pral trete kòm done rive.

Sous: opennet.ru

Add nouvo kòmantè