Te taha-tūmau JavaScript Node.js 17.0 tuku

Node.js 17.0, he papa mo te whakahaere tono whatunga i roto i te JavaScript, i tukuna. Ko te Node.js 17.0 he peka tautoko auau ka whiwhi whakahōutanga tae noa ki Pipiri 2022. Hei nga ra e haere ake nei, ka oti te whakapumautanga o te peka Node.js 16, ka whiwhi mana LTS ka tautokohia tae noa ki Aperira 2024. Ko te tiaki i te peka LTS o mua o Node.js 14.0 ka mau ki Paenga-whawha 2023, me te tau i mua i te peka LTS whakamutunga 12.0 ki Paenga-whawha 2022.

Nga whakapainga matua:

  • Kua whakahoutia te miihini V8 ki te putanga 9.5.
  • Ko te whakatinanatanga o nga momo rerekee o te API taketake i runga i te whakamahinga o te atanga rorohiko tukutahinga Whakapono kua haere tonu. I tua atu i nga API Whakaaetanga o te Timers me nga Streams Promises API i mua ake nei, ka whakauruhia e Node.js 17.0 te Readline Promise API mo te panui i te raina raraunga ma te raina ma te whakamahi i te waahanga panui. kawemai * hei raina panui mai i 'node:readline/promises'; kawemai { stdin hei whakauru, stdout hei putanga } mai i te 'tukatuka'; const rl = readline.createInterface({whakauru, putanga}); const answer = tatari rl.question('He aha to whakaaro mo Node.js?'); console.log('Me mihi ki a koe mo to urupare utu nui: ${whakautu}'); rl.close();
  • Kua whakahōungia te whare pukapuka OpenSSL kua tukuna ki te putanga 3.0 (he marau quictls/openssl me te tautoko kawa QUIC ka whakamahia).
  • Whakahohehia te putanga Node.js ki te whakaatu i roto i nga tohu taapu ka puta mai i nga hapa mate ka mutu te tono.

I tua atu, ka taea e matou te whakahua i te whakakorenga o nga whakaraeraetanga e rua i roto i nga manga o naianei o Node.js (CVE-2021-22959, CVE-2021-22960), e taea ai te whakahaere i nga whakaeke "HTTP Request Smuggling" (HRS), e tukua matou ki te whiri ki nga ihirangi o nga tono a etahi atu kaiwhakamahi i tukatukahia i roto i te miro kotahi i waenga i te pito o mua me te pito o muri (hei tauira, ka taea te whakauru i te waehere JavaScript kino ki te waahi o tetahi atu kaiwhakamahi). Ka whakaatuhia nga korero i muri mai, engari mo tenei wa ka mohio noa tatou ko nga raru ka puta mai i te he o te whakahaere i nga waahi i waenga i te ingoa pane pane HTTP me te koroni, me te rereke o te whakahaerenga o te hokinga waka me nga tohu whangai raina i roto i te paraka tawhā whakamahia i te wa e tuku ana. te tinana tono i nga waahanga i roto i te aratau "chunked" "

Kia maumahara tatou ka taea te whakamahi i te papaaho Node.js mo te tautoko taha-tumau mo nga tono Tukutuku me te hanga kaupapa whatunga kiritaki me te tūmau noa. Hei whakawhānui ake i te mahinga o nga tono mo te Node.js, he kohinga nui o nga waahanga kua rite, ka kitea e koe nga waahanga me te whakatinanatanga o te HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 tūmau me nga kiritaki, nga waahanga mo te whakauru. me nga momo angamahi tukutuku, WebSocket me Ajax kaihautu , hono ki te DBMS (MySQL, PostgreSQL, SQLite, MongoDB), nga miihini tauira, nga miihini CSS, te whakatinanatanga o nga algorithms cryptographic me nga punaha whakamana (OAuth), nga parser XML.

Hei whakarite i te tukatuka o te maha o nga tono whakarara, ka whakamahi a Node.js i tetahi tauira mahi waehere tukutahi i runga i te whakahaere takahanga kore-aukati me te whakamaramatanga o nga kaikawe waea. Ko nga tikanga e tautokohia ana mo nga hononga maha ko te epoll, kqueue, /dev/poll, me te kowhiri. Mo te hononga maha, ka whakamahia te whare pukapuka libuv, he taapiri mo te libev i runga i nga punaha Unix me te IOCP i Windows. Ka whakamahia te whare pukapuka libeio ki te hanga i tetahi puna miro, ka whakauruhia nga c-ares ki te mahi i nga patai DNS i roto i te aratau aukati-kore. Ko nga waea waea katoa e aukati ana ka mahia ki roto i te puna miro, katahi ano ka rite ki nga kaikawe tohu, ka whakahoki i te hua o a raatau mahi ma te paipa (paipa) kore ingoa. Ko te mahinga o te waehere JavaScript ka tukuna ma te whakamahi i te miihini V8 i whakawhanakehia e Google (i tua atu, kei te whakawhanake a Microsoft i tetahi putanga o Node.js me te miihini Chakra-Core).

I tona kaupapa, he rite te Node.js ki te Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks, me te whakatinanatanga o te kaupapa Tcl, engari ko te takahanga takahanga i Node.js kei te huna mai i te kaiwhakawhanake me te rite ki te whakahaere kaupapa i roto i te tono tukutuku e rere ana. i roto i te pūtirotiro. I te wa e tuhi ana i nga tono mo te node.js, me whai whakaaro koe ki nga ahuatanga o te kaupapa-a-takahanga, hei tauira, kaua e mahi "var result = db.query("select..");" me te tatari mo te whakaotinga o te mahi me te tukatuka i muri mai o nga hua, ka whakamahia e Node.js te kaupapa o te mahi tukutahi, ara. ka huri te waehere ki te "db.query("twhiria..", mahi (hua) {tukatuka hua});", ka haere tonu te mana ki etahi atu waehere, ka tukatukahia te hua patai ka tae mai nga raraunga.

Source: opennet.ru

Tāpiri i te kōrero