Tuāpapa JavaScript taha-tūmau Node.js 21.0 e wātea ana

I tukuna a Node.js 21.0, he papa mo te whakahaere i nga tono whatunga i roto i te JavaScript. Ka tautokohia te peka Node.js 21.0 mo te ono marama. Hei nga ra e haere ake nei, ka oti te whakapumautanga o te peka Node.js 6, ka whiwhi mana LTS ka tautokohia tae noa ki Paenga-whawha 20. Ko te tiaki i te peka LTS o mua o Node.js 2026 ka mau ki Mahuru 18.0, me te tau i mua i te peka LTS 2025 ki Paenga-whawha 16.0.

Nga whakapainga matua:

  • Ko te API Tikina kua kiia he pumau, i hangaia mo te uta rauemi ki runga i te whatunga me te whakamaarama i te tuhi o te waehere JavaScript mo te ao e tika ana mo te mahi i runga i te taha o te tūmau me te taha kiritaki. Ko te whakatinanatanga i runga i te waehere mai i te HTTP / 1.1 undici kiritaki me te tata ki te API rite e whakaratohia ana i roto i nga kaitirotiro. Kei roto i te API te tikanga tiki() me nga taonga Pane. Tono me te Whakautu, hei tohu mo nga pane HTTP, tono me te whakautu. const res = tatari tiki('https://nodejs.org/api/documentation.json'); if (res.ok) {const data = tatari res.json(); console.log(raraunga); }
  • Ko te tautoko mo te WebStreams API, e whakarato ana i te uru ki nga awa raraunga i whakawhiwhia mai i runga i te whatunga, kua pumau. Ka taea e te API te taapiri i o ake kaikawe e mahi ana me nga raraunga ka tae mai nga korero i runga i te whatunga, me te kore e tatari kia tangohia te konae katoa. Ko nga mea e waatea ana i Node.js ko ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream, me DecompressionStream.
  • Kua taapirihia te whakatinanatanga whakamatautau o te kiritaki WebSocket, he hototahi ki nga kaitirotiro. Kia taea ai te tautoko WebSocket, ka tukuna te haki "--experimental-websocket".
  • I taapirihia he aratau whakamatautau mo te whakamahi i te whakatinanatanga taunoa o nga waahanga JavaScript ESM (ECMAScript Modules, i whakamahia i roto i nga waahanga mo nga kaitirotiro) hei utu mo CommonJS (mo te Node.js). Ko te huringa karekau e pa ki nga waahanga kua whakamaramatia te whakatakotoranga ma te mara "momo" i package.json, kua tohua ma te haki "--input-type", ka kitea ranei na te toronga o te konae (.mjs mo ESM, .cjs mo CommonJS). Engari, ko nga kōwae kaore i te tino whakamaaramatia hei CommonJS (hei tauira, he toronga ".js") ka kiia hei waahanga ESM ina whakahohea te aratau hou. Hei whakahohe i nga tautuhinga kōwae hou, kua tohua te haki "--momo-taunoa".
  • Kua whakahouhia te miihini V8 ki te putanga 11.8, i whakamahia i roto i te Chromium 118, e tautoko ana inaianei i te ArrayBuffer.prototype.transfer tikanga, te kaha ki te whakarōpū i nga raupapa (groupBy method) me nga tohutohu WebAssembly mo te tukatuka tonu (i32.add, i32.sub, i32.mul, i64 .add, i64.sub and i64.mul).
  • Kua whakakorehia te tautoko mo te kaihautu o te aoPreload, hei pai mo te rehita me te arataki waea ki te whirihora i nga waahanga.
  • He kōwhiringa "flush" kua taapirihia ki te mahi fs.writeFile hei akiaki i nga raraunga kia rere ki te puku i muri i ia mahi tuhi.
  • Kua pai ake te mahinga o te waehere e pa ana ki te poroporo URL, te tiki API, nga awa, te node:fs, me te HTTP.
  • Kua taapirihia te ahanoa kaiwhakatere o te ao. Hei tauira, ki te whiwhi raraunga mo te maha o nga matua CPU, ka taea e koe te whakamahi i te taonga navigator.hardwareConcurrency.
  • I roto i te tawhā “—whakamatautau”, kua taapirihia he tautoko mo nga kopare glob mo te kowhiri i nga whakamatautau ka whakahaere (hei tauira, ka taea e koe te tohu “—test **/*.test.js.”).
  • Kua whakahouhia te kaiwhakahaere kete whakauru npm 10.2.0 me te llhttp 9.1.2 parser.
  • Ko te tautoko mo te Visual Studio 2019 me nga putanga o macOS tawhito ake i te 11.0 kua whakamutua.

Ka taea te whakamahi i te turanga Node.js mo te tiaki tūmau o nga tono Tukutuku me te hanga i nga papatono whatunga kiritaki me te tūmau. Hei whakawhānui ake i te mahinga o nga tono mo Node.js, kua rite te kohinga nui o nga waahanga, ka kitea e koe nga waahanga me te whakatinanatanga o te HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 tūmau me nga kiritaki, kōwae mo te whakauru. me nga momo angamahi tukutuku, WebSocket me Ajax kaihautu , DBMS tūhonohono (MySQL, PostgreSQL, SQLite, MongoDB), templating engines, CSS engines, whakatinanatanga o crypto algorithms me nga punaha whakamana (OAuth), XML parser.

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