Hoʻokuʻu ʻia ʻo JavaScript Node.js 17.0

Ua hoʻokuʻu ʻia ʻo Node.js 17.0, kahi kahua no ka holo ʻana i nā noi pūnaewele ma JavaScript. He lālā kākoʻo maʻamau ʻo Node.js 17.0 e hoʻomau i ka loaʻa ʻana o nā mea hou a hiki i Iune 2022. I nā lā e hiki mai ana, e hoʻopau ʻia ka hoʻopaʻa ʻana o ka lālā Node.js 16, e loaʻa iā ia ke kūlana LTS a kākoʻo ʻia a hiki i ʻApelila 2024. E mau ana ka mālama ʻana i ka lālā LTS o Node.js 14.0 a hiki i ʻApelila 2023, a ʻo ka makahiki ma mua o ka lālā LTS hope 12.0 a hiki i ʻApelila 2022.

Nā hoʻomaikaʻi nui:

  • Ua hoʻonui ʻia ka ʻenekini V8 i ka mana 9.5.
  • Ua hoʻomau ʻia ka hoʻokō ʻana i nā ʻano like ʻole o ka API kumu ma muli o ka hoʻohana ʻana o ka Promise asynchronous computing interface. Ma waho aʻe o nā Timers Promises a me Streams Promises APIs i hāʻawi mua ʻia, Node.js 17.0 hoʻolauna i ka Readline Promise API no ka heluhelu ʻana i ka laina ʻikepili ma ka laina me ka hoʻohana ʻana i ka module readline. hoʻokomo * e like me readline mai 'node: readline/promises'; hoʻokomo { stdin ma ke ʻano he hoʻokomo, stdout ma ke ʻano he puka } mai 'kaʻina hana'; const rl = readline.createInterface({ hookomo, puka }); pane const = kali rl.question('He aha kou manaʻo no Node.js?'); console.log('Mahalo no kāu manaʻo manaʻo nui: ${pane}'); rl.close();
  • Ua hōʻano hou ʻia ka waihona OpenSSL i hāʻawi ʻia i ka mana 3.0 (kahi quictls/openssl fork me ke kākoʻo protocol QUIC i hoʻohana ʻia).
  • Ua hiki ke hōʻike ʻia ka mana Node.js i nā ʻano kikoʻī i hoʻopuka ʻia inā loaʻa nā hewa make e hoʻopau ai ka noi.

Eia hou, hiki iā mākou ke haʻi aku i ka hoʻopau ʻia ʻana o nā nāwaliwali ʻelua i nā lālā o kēia manawa o Node.js (CVE-2021-22959, CVE-2021-22960), e hiki ai ke hoʻokō i nā hoʻouka kaua "HTTP Request Smuggling" (HRS). e ʻae iā mākou e hoʻopili i loko o nā mea o nā noi a nā mea hoʻohana ʻē aʻe i hana ʻia ma ka pae hoʻokahi ma waena o ka mua a me ka hope (no ka laʻana, hiki ke hoʻokomo ʻia nā code JavaScript ʻino i loko o ke kau o kekahi mea hoʻohana). E hōʻike ʻia nā kikoʻī ma hope, akā i kēia manawa ke ʻike wale nei mākou ʻo nā pilikia ke kumu o ka lawelawe hewa ʻana o nā hakahaka ma waena o ka inoa poʻomanaʻo HTTP a me ke kolonā, a me nā ʻano like ʻole o ka hoʻihoʻi ʻana o ke kaʻa a me nā mea hānai laina i ka poloka parameter i hoʻohana ʻia i ka wā e hoʻouna ai. ke kino noi ma nā ʻāpana i ke ʻano "chunked" "

E hoʻomanaʻo kākou e hiki ke hoʻohana ʻia ka paepae Node.js no ke kākoʻo ʻaoʻao kikowaena o nā noi pūnaewele a no ka hoʻokumu ʻana i nā polokalamu kelepona maʻamau a me nā kikowaena kikowaena. No ka hoʻonuiʻana i ka hana o nā noi no Node.js, ua hoʻomākaukauʻia kahi hōʻiliʻili nui o nā modula, kahi e hiki ai iāʻoe ke loaʻa nā modula me ka hoʻokōʻana o HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 servers a me nā mea kūʻai, modules no ka hoʻohui. me nā pūnaewele pūnaewele likeʻole, WebSocket a me Ajax mea lawelawe , nā mea hoʻohui i DBMS (MySQL, PostgreSQL, SQLite, MongoDB), nā mīkini hoʻohālike, nā mīkini CSS, nā hoʻokō o nā algorithms cryptographic a me nā ʻōnaehana mana (OAuth), XML parsers.

No ka hōʻoia ʻana i ka hana ʻana o ka nui o nā noi like, hoʻohana ʻo Node.js i kahi hoʻohālike hoʻokō code asynchronous e pili ana i ka mālama ʻana i ka hanana ʻole a me ka wehewehe ʻana o nā mea hoʻohana kelepona. ʻO nā ala i kākoʻo ʻia no ka hoʻohui ʻana i nā pilina he epoll, kqueue, /dev/poll, a koho. No ka hoʻohui multiplexing, hoʻohana ʻia ka waihona libuv, kahi mea hoʻohui no libev ma nā ʻōnaehana Unix a me IOCP ma Windows. Hoʻohana ʻia ka waihona libeio no ka hana ʻana i kahi kolamu thread, a ua hoʻohui ʻia nā c-ares e hana i nā nīnau DNS ma ke ʻano pale ʻole. Hoʻokō ʻia nā kelepona ʻōnaehana āpau i hoʻopaʻa ʻia i loko o ka loko o ke kaula a laila, e like me nā mea lawelawe hōʻailona, ​​hoʻihoʻi i ka hopena o kā lākou hana ma o ka paipu inoa ʻole (pipe). Hāʻawi ʻia ka hoʻokō ʻana i ka code JavaScript ma o ka hoʻohana ʻana i ka mīkini V8 i hoʻomohala ʻia e Google (eia kekahi, ke kūkulu nei ʻo Microsoft i kahi mana o Node.js me ka ʻenekini Chakra-Core).

Ma kona kumu, ua like ka Node.js me ka Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks, a me ka hoʻokō hanana Tcl, akā ua hūnā ʻia ka hanana hanana ma Node.js mai ka mea hoʻomohala a ua like me ka lawelawe ʻana i ka hanana ma kahi noi pūnaewele e holo ana. ma ka polokalamu kele pūnaewele. I ke kākau ʻana i nā noi no node.js, pono ʻoe e noʻonoʻo i nā kikoʻī o ka hoʻonohonoho ʻana i ka hanana, no ka laʻana, ma mua o ka hana ʻana "var result = db.query("select..");" me ka kali ʻana no ka pau ʻana o ka hana a me ka hoʻoili ʻana o nā hopena, hoʻohana ʻo Node.js i ke kumu o ka hoʻokō asynchronous, ʻo ia hoʻi. ua hoʻololi ʻia ke code i "db.query ("koho ..", hana (hopena) {hopena hana});", kahi e hele koke ai ka mana i ke code hou aʻe, a e hana ʻia ka hopena nīnau i ka hiki ʻana mai o ka ʻikepili.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka