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

Ko te tukunga o Node.js 20.0, he papa mo te whakahaere i nga tono whatunga ki JavaScript, kua puta. Kua tohua a Node.js 20.0 ki te peka tautoko roa, engari kaore tenei mana e tukuna kia Oketopa, i muri i te whakapumautanga. Ka tautokohia a Node.js 20.x tae noa ki te Paenga-whāwhā 30, 2026. Ko te tiaki i te peka Node.js 18.x LTS o mua ka mau ki Paenga-whawha 2025, me te peka 16.x LTS o mua ki te Mahuru 2023. Ka noho tonu te peka 14.x LTS hei te Paenga-whāwhā 30, me te peka mo te Node.js 19.x hei te Pipiri 1.

Nga whakapainga matua:

  • Kua whakahoutia te miihini V8 ki te putanga 11.3, e whakamahia ana i roto i te Chromium 113. O nga huringa i whakaritea ki te peka Node.js 19, i whakamahia te miihini Chromium 107, te String.prototype.isWellFormed me toWellFormed mahi, te Array.prototype me TypedArray.prototype tikanga ki te mahi ki te kape i runga i te huringa o nga taonga Array me TypedArray, "v" haki i RegExp, tautoko mo te whakarereke i te ArrayBuffer me te whakanui ake i te rahi o SharedArrayBuffer, hiku-waea i WebAssembly.
  • Kei te whakaarohia he tauira Whakaaetanga whakamatautau e taea ai e koe te aukati i te uru ki etahi rauemi i te wa e mahia ana. Ka taea te tautoko Tauira Whakaaetanga ma te tohu i te haki "--whakamatau-whakaaetanga" ina rere ana. I te whakatinanatanga tuatahi, i whakaarohia nga whiringa ki te aukati i te tuhi (--allow-fs-write) me te panui (--allow-fs-read) te uru ki etahi waahanga o te FS, nga tukanga tamariki (--allow-child-process) , tāpiri-ake (--no-addons ) me nga miro (--allow-worker). Hei tauira, ki te tuku tuhi ki te whaiaronga /tmp me te panui i te konae /home/index.js, ka taea e koe te whakarite: node --experimental-permission --allow-fs-write=/tmp/ --allow-fs-read =/home/index.js taupū .js

    Hei tirotiro i te urunga, ka whakaarohia kia whakamahia te tikanga process.permission.has(), hei tauira, "process.permission.has('fs.write',"/tmp/test").

  • Ko nga kaihautu mo nga waahanga o waho o te ECMAScript (ESMs) i utaina ma te "--experimental-loader" ka mahia i roto i te miro motuhake, kua wehea mai i te miro matua, e whakakore ana i te whakawhitinga o te waehere tono me te utaina o nga waahanga ESM. He rite ki nga kaitirotiro, ko te tikanga import.meta.resolve() ka mahi i te wa e karangahia ana i roto i tetahi tono. I tetahi o nga peka o muri mai o Node.js, kua whakamaherehia te tautoko uta ESM kia nekehia ki te waahanga o nga ahuatanga pumau.
  • Ko te kōwae:whakamatautau (test_runner), i hangaia hei hanga me te whakahaere i nga whakamatautau JavaScript e whakahoki ana i nga hua ki te whakatakotoranga TAP (Test Anything Protocol), kua nukuhia ki te pumau.
  • Kua waihangahia he roopu mahi motuhake, na, hei whakarite mo te peka hou, i mahi ki te tere ake i nga momo waahanga whakahaere, tae atu ki te parsing URL, fetch() me EventTarget. Hei tauira, kua hauruatia te nui o te timatanga o te EventTarget, kua tino pai ake te mahi o te tikanga URL.canParse(), me te pai o nga taima kua pai ake. I tua atu, ko te tukunga o te parser URL mahi nui - Ada 2.0, i tuhia ki te C ++, kei roto i te hanganga.
  • Ko te whakawhanaketanga o tetahi ahuatanga whakamatautau mo te tuku tono i te ahua o te konae ka taea te whakahaere (SEA, Nga Tono Whakahaere Kotahi). Ko te hanga i tetahi kaikawe inaianei me whakakapi he pupuhi i hangaia mai i te konae whirihoranga JSON (hei whakakapi i te konae JavaScript).
  • Kua pai ake te hototahitanga API Crypto Tukutuku me nga whakatinanatanga mai i etahi atu kaupapa.
  • He tautoko whai mana mo Windows i runga i nga punaha ARM64.
  • Te tautoko tonu mo nga toronga WASI (WebAssembly System Interface) mo te hanga tono mokowhiti WebAssembly. I tangohia te hiahia ki te whakapūtā he kara raina whakahau motuhake kia taea ai te tautoko WASI.

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