Kutulutsidwa kwa seva-mbali JavaScript nsanja Node.js 17.0

Node.js 17.0, nsanja yogwiritsira ntchito maukonde mu JavaScript, idatulutsidwa. Node.js 17.0 ndi nthambi yothandizira nthawi zonse yomwe ipitiliza kulandira zosintha mpaka June 2022. M'masiku akubwerawa, kukhazikika kwa nthambi ya Node.js 16 kudzamalizidwa, yomwe idzalandira LTS ndipo idzathandizidwa mpaka April 2024. Kusamalira nthambi yam'mbuyo ya LTS ya Node.js 14.0 kudzakhala mpaka Epulo 2023, ndipo chaka chatha LTS nthambi 12.0 mpaka Epulo 2022.

Kusintha kwakukulu:

  • Injini ya V8 yasinthidwa kukhala 9.5.
  • Kukhazikitsa kwamitundu yosiyanasiyana ya API yoyambira kugwiritsa ntchito mawonekedwe a Promise asynchronous computing kwapitilira. Kuphatikiza pa ma API a Timers Promises ndi Streams Promises APIs, Node.js 17.0 imayambitsa Readline Promise API kuti muwerenge mzere wa deta ndi mzere pogwiritsa ntchito module yowerengera. import * monga kuwerenga kuchokera ku 'node:readline/promises'; lowetsani {stdin monga zolowetsa, stdout monga zotuluka} kuchokera ku 'process'; const rl = readline.createInterface ({kulowetsa, kutulutsa}); const answer = await rl.question('Mukuganiza bwanji za Node.js?'); console.log('Zikomo chifukwa cha ndemanga zanu zofunika: ${yankho}'); rl.tseka ();
  • Laibulale ya OpenSSL yoperekedwa yasinthidwa kukhala 3.0 (foloko ya quictls/openssl yokhala ndi QUIC protocol yothandizira imagwiritsidwa ntchito).
  • Yathandiza kuti mtundu wa Node.js uwonetsedwe muzinthu zomwe zimatuluka ngati pangakhale zolakwika zomwe zimapangitsa kuti pulogalamuyo ithe.

Kuphatikiza apo, titha kutchulapo za kuchotsedwa kwa ziwopsezo ziwiri m'nthambi zomwe zilipo za Node.js (CVE-2021-22959, CVE-2021-22960), zomwe zimapangitsa kuti zitheke kuchita ziwopsezo za "HTTP Request Smuggling" (HRS), zomwe. tiloleni kuti tilowe muzomwe zili m'mafunso a ogwiritsa ntchito omwe asinthidwa mu ulusi womwewo pakati pa kutsogolo ndi kumbuyo (mwachitsanzo, JavaScript code yoyipa ikhoza kuikidwa mu gawo la wogwiritsa ntchito wina). Tsatanetsatane idzawululidwa pambuyo pake, koma pakadali pano timangodziwa kuti mavutowa amayamba chifukwa cha kusagwira bwino kwa malo pakati pa dzina lamutu wa HTTP ndi colon, komanso kasamalidwe kosiyana ka kubweza kagalimoto ndi zilembo zama feed mu mzere womwe umagwiritsidwa ntchito potumiza. gulu lopempha mu magawo mu "chunked" mode "

Tikumbukenso kuti nsanja ya Node.js itha kugwiritsidwa ntchito pothandizira ma seva pamawebusayiti komanso kupanga mapulogalamu wamba a kasitomala ndi ma seva. Kukulitsa magwiridwe antchito a Node.js, gulu lalikulu la ma module akonzedwa, momwe mungapeze ma module ndi kukhazikitsa kwa HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 ma seva ndi makasitomala, ma module ophatikizira. yokhala ndi mawebusayiti osiyanasiyana, WebSocket ndi Ajax handlers, zolumikizira ku DBMS (MySQL, PostgreSQL, SQLite, MongoDB), injini zama template, injini za CSS, kukhazikitsidwa kwa ma cryptographic algorithms ndi machitidwe ovomerezeka (OAuth), XML parsers.

Kuonetsetsa kukonzedwa kwa zopempha zambiri zofananira, Node.js imagwiritsa ntchito njira yotsatsira ma code asynchronous potengera kusatsekereza zochitika zosatsekereza komanso kutanthauzira kwa omenyera callback. Njira zothandizira zolumikizira ma multiplexing ndi epoll, kqueue, /dev/poll, ndikusankha. Pakulumikiza kuchulukitsa, laibulale ya libuv imagwiritsidwa ntchito, yomwe ndi chowonjezera cha libev pa Unix system ndi IOCP pa Windows. Laibulale ya libeio imagwiritsidwa ntchito popanga dziwe la ulusi, ndipo ma c-ares amaphatikizidwa kuti achite mafunso a DNS munjira yosatsekereza. Mafoni onse omwe amayambitsa kutsekereza amachitidwa mkati mwa dziwe la ulusi ndiyeno, monga oyendetsa ma siginecha, amasamutsa zotsatira za ntchito yawo kudzera pa chitoliro chosatchulidwa dzina (chitoliro). Kukonzekera kwa JavaScript code kumaperekedwa pogwiritsa ntchito injini ya V8 yopangidwa ndi Google (kuphatikizanso, Microsoft ikupanga Node.js ndi injini ya Chakra-Core).

Pachimake, Node.js ndi ofanana ndi Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks, ndi kukhazikitsidwa kwa zochitika za Tcl, koma zochitika za Node.js zimabisika kwa wopanga mapulogalamu ndipo zimafanana ndi zochitika pa intaneti. mu msakatuli. Polemba mapulogalamu a node.js, muyenera kuganizira zazomwe zimayendetsedwa ndi zochitika, mwachitsanzo, m'malo mochita "var result = db.query("select..");" podikirira kumaliza ntchito ndikukonza zotsatila, Node.js imagwiritsa ntchito mfundo ya kuphedwa kosagwirizana, i.e. code imasinthidwa kukhala "db.query("select..", function (result) {result processing});", momwe ulamuliro udzadutsa nthawi yomweyo ku code yowonjezera, ndipo zotsatira zafunso zidzasinthidwa pamene deta ikufika.

Source: opennet.ru

Kuwonjezera ndemanga