Server-sab JavaScript Node.js 17.0 tso tawm

Node.js 17.0, lub platform rau kev khiav haujlwm network hauv JavaScript, tau tso tawm. Node.js 17.0 yog ib lub koom haum txhawb nqa uas yuav txuas ntxiv tau txais kev hloov tshiab mus txog rau lub Rau Hli 2022. Nyob rau hauv cov hnub tom ntej no, kev ruaj khov ntawm Node.js 16 ceg yuav ua tiav, uas yuav tau txais LTS raws li txoj cai thiab yuav txhawb nqa txog lub Plaub Hlis 2024. Kev saib xyuas ntawm LTS yav dhau los ceg ntawm Node.js 14.0 yuav kav mus txog lub Plaub Hlis 2023, thiab xyoo ua ntej LTS ceg 12.0 mus txog lub Plaub Hlis 2022.

Kev txhim kho tseem ceeb:

  • Lub cav V8 tau hloov kho rau version 9.5.
  • Kev siv cov kev hloov pauv ntawm API yooj yim raws li kev siv Cov Lus Cog Tseg asynchronous xam interface tau txuas ntxiv mus. Ntxiv rau cov Timers Promises thiab Stream Promises APIs yav dhau los, Node.js 17.0 qhia txog Readline Promise API rau kev nyeem cov ntaub ntawv kab los ntawm kab uas siv lub readline module. import * raws li readline los ntawm 'node:readline/promises'; import { stdin as input, stdout as output } los ntawm 'txheej txheem'; const rl = readline.createInterface({input, tso zis }); const teb = await rl.question('Koj xav li cas ntawm Node.js?'); console.log('Ua tsaug rau koj cov lus pom zoo: ${answer}'); rl.close();
  • Lub tsev qiv ntawv OpenSSL muab tau raug hloov kho rau version 3.0 (ib qho quictls/openssl diav rawg nrog QUIC raws tu qauv txhawb tau siv).
  • Ua kom lub Node.js version kom pom nyob rau hauv pawg kab uas tau tso tawm nyob rau hauv rooj plaub ntawm kev ua tsis zoo uas ua rau daim ntawv thov xaus.

Tsis tas li ntawd, peb tuaj yeem hais txog kev tshem tawm ob qhov tsis zoo hauv cov ceg tam sim no ntawm Node.js (CVE-2021-22959, CVE-2021-22960), uas ua rau nws muaj peev xwm ua tiav "HTTP Thov Smuggling" (HRS) tawm tsam, uas tso cai rau peb tawm mus rau hauv cov ntsiab lus ntawm lwm tus neeg siv cov lus thov ua tiav hauv tib cov xov ntawm lub frontend thiab backend (piv txwv li, tsis zoo JavaScript code tuaj yeem tso rau hauv lwm tus neeg siv lub sijhawm). Cov ntsiab lus yuav raug nthuav tawm tom qab, tab sis tam sim no peb tsuas yog paub tias cov teeb meem tshwm sim los ntawm kev tuav tsis raug ntawm qhov chaw nruab nrab ntawm HTTP header lub npe thiab cov nyuv, nrog rau kev sib txawv ntawm cov tsheb thauj khoom rov qab thiab kab noj cov cim hauv parameter thaiv siv thaum kis. lub cev thov nyob rau hauv qhov chaw nyob rau hauv "chunked" hom "

Cia peb nco ntsoov koj tias Node.js platform tuaj yeem siv tau rau ob qho tib si rau kev txhawb nqa server-sab ntawm Web applications thiab tsim cov neeg siv khoom zoo tib yam thiab cov kev pabcuam server network. Txhawm rau nthuav dav kev ua haujlwm ntawm cov ntawv thov rau Node.js, kev sau ntau ntawm cov qauv tau npaj, uas koj tuaj yeem pom cov qauv nrog kev siv HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 servers thiab cov neeg siv khoom, modules rau kev koom ua ke nrog ntau lub vev xaib, WebSocket thiab Ajax handlers, connectors rau DBMS (MySQL, PostgreSQL, SQLite, MongoDB), template engines, CSS engines, kev siv cryptographic algorithms thiab tso cai systems (OAuth), XML parsers.

Txhawm rau kom ua tiav qhov kev thov ntau ntawm qhov sib npaug, Node.js siv tus qauv asynchronous code ua tiav raws li kev tswj hwm tsis txwv qhov kev tshwm sim thiab lub ntsiab lus ntawm kev hu xov tooj rov qab. Cov kev txhawb nqa rau kev sib txuas sib txuas yog epoll, kqueue, /dev/poll, thiab xaiv. Rau kev sib txuas multiplexing, lub tsev qiv ntawv libuv yog siv, uas yog ib qho ntxiv rau libev ntawm Unix systems thiab IOCP ntawm Windows. Lub tsev qiv ntawv libeio yog siv los tsim ib lub pas dej, thiab c-ares koom ua ke los ua DNS queries hauv hom tsis thaiv. Txhua qhov kev hu xov tooj uas ua rau kev thaiv yog raug tua hauv cov xov pas dej ua ke thiab tom qab ntawd, zoo li cov teeb liab tuav, hloov cov txiaj ntsig ntawm lawv txoj haujlwm rov qab los ntawm cov yeeb nkab tsis muaj npe (cov yeeb nkab). Kev ua tiav ntawm JavaScript code yog muab los ntawm kev siv lub cav V8 tsim los ntawm Google (tsis tas li ntawd, Microsoft tab tom tsim ib version ntawm Node.js nrog Chakra-Core engine).

Ntawm nws qhov tseem ceeb, Node.js zoo ib yam li Perl AnyEvent, Ruby Event Machine, Python Twisted moj khaum, thiab Tcl kev tshwm sim, tab sis qhov kev tshwm sim voj nyob rau hauv Node.js tau muab zais los ntawm tus tsim tawm thiab zoo li qhov xwm txheej tuav hauv daim ntawv thov web khiav. hauv browser. Thaum sau ntawv thov rau node.js, koj yuav tsum xav txog qhov tshwj xeeb ntawm qhov kev tshwm sim-tsav programming, piv txwv li, tsis txhob ua "var result = db.query("xaiv..");" nrog tos kom tiav kev ua haujlwm thiab ua tiav cov txiaj ntsig tom qab, Node.js siv lub hauv paus ntsiab lus ntawm asynchronous execution, i.e. cov cai tau hloov mus rau "db.query("xaiv..", muaj nuj nqi (tshem tawm) {tshem tawm ua haujlwm});", nyob rau hauv uas kev tswj yuav tam sim dhau mus rau cov lej ntxiv, thiab cov lus nug tshwm sim yuav ua tiav raws li cov ntaub ntawv tuaj txog.

Tau qhov twg los: opennet.ru

Ntxiv ib saib