Sethala sa JavaScript se lehlakoreng la seva Node.js 20.0 se fumaneha

Ho lokolloa ha Node.js 20.0, sethala sa ho phethahatsa lits'ebetso tsa marang-rang ho JavaScript, ho etsahetse. Node.js 20.0 e abetsoe lekaleng le lelelele la tšehetso, empa boemo bona bo ke ke ba abeloa ho fihlela ka October, ka mor'a hore ho be le botsitso. Node.js 20.x e tla tšehetsoa ho fihlela ka la 30 Mmesa 2026. Tlhokomelo ea lekala la pele la Node.js 18.x LTS e tla tšoarella ho fihlela ka Mmesa 2025, le lekala le fetileng la 16.x LTS ho fihlela Loetse 2023. Lekala la 14.x LTS le tla koalloa ka la 30 Mmesa, 'me lekala la nakoana la Node.js 19.x ka la 1 Phuptjane.

Lintlafatso tsa mantlha:

  • Enjene ea V8 e nchafalitsoe ho mofuta oa 11.3, e sebelisoang ho Chromium 113. Har'a liphetoho tse bapisoang le lekala la Node.js 19, le sebelisitseng mochine oa Chromium 107, String.prototype.isWellFormed le mesebetsi ea WellFormed, Array.prototype. le mekhoa ea mofuta oa TypedArray.prototype ho sebetsa le kopi phetohong ea lintho tsa Array le TypedArray, "v" folakha ho RegExp, tšehetso ea ho fetola boholo ba ArrayBuffer le ho eketsa boholo ba SharedArrayBuffer, tail-call ho WebAssembly.
  • Ho hlahisitsoe mochini oa liteko oa Permission Model o o lumellang hore o thibele phihlello ea lisebelisoa tse itseng nakong ea ts'ebetso. Ts'ehetso ea Mohlala oa Litumello e lumelloa ka ho hlakisa "--teko-tumello" folakha ha e sebetsa. Ts'ebetsong ea pele, likhetho li ile tsa hlahisoa ho thibela ho ngola (-allow-fs-write) le ho bala (-allow-fs-read) ho fihlella likarolo tse itseng tsa FS, mekhoa ea bana (--allow-child-process) , litlatsetso (--no-addons) le likhoele (--allow-worker). Mohlala, ho lumella ho ngolla bukeng ea /tmp le ho bala faele ea /home/index.js, o ka hlakisa: node --experimental-permission --allow-fs-write=/tmp/ --allow-fs-read =/home/index.js index .js

    Ho hlahloba phihlello, ho kgothaletswa ho sebedisa mokgwa wa process.permission.has(), mohlala, "process.permission.has('fs.write',"/tmp/test").

  • Li-Handlers tsa ECMAScript external modules (ESMs) tse laetsoeng ka khetho ea "-experimental-loader" joale li etsoa ka khoele e arohaneng, e arohaneng le khoele e kholo, e felisang ho kopana ha khoutu ea kopo le li-module tsa ESM tse laetsoeng. Joalo ka li-browser, mokhoa oa import.meta.resolve() o sebetsa ka mokhoa o lumellanang ha o bitsoa ka har'a sesebelisoa. Ho le leng la makala a latelang a Node.js, tšehetso ea ho kenya ESM e reretsoe ho isoa sehlopheng sa likarolo tse tsitsitseng.
  • Mojule oa node:test (test_runner), o etselitsoeng ho theha le ho tsamaisa liteko tsa JavaScript tse khutlisetsang sephetho ka sebopeho sa TAP (Test Anything Protocol), e se e tsitse.
  • Ho theiloe sehlopha se arohaneng sa tšebetso, seo, molemong oa ho lokisetsa lekala le lecha, se sebelitseng ho potlakisa likarolo tse fapaneng tsa nako ea ho sebetsa, ho kenyeletsoa URL parsing, fetch() le EventTarget. Ka mohlala, taba ea ho qala EventTarget e fokotsoe ka halofo, ts'ebetso ea mokhoa oa URL.canParse() e ntlafalitsoe haholo, 'me katleho ea li-timers e ntlafalitsoe. Ho phaella moo, ho lokolloa ha sehlaseli sa URL se sebetsang hantle haholo - Ada 2.0, se ngotsoeng ho C ++, se kenyelelitsoe sebopeho.
  • Ntlafatso ea karolo ea liteko bakeng sa ho fana ka likopo ka mokhoa oa faele e le 'ngoe e ka phethisoang (SEA, Single Executable Applications) e tsoetse pele. Ho theha e ka phethisoang hona joale ho hloka ho kenya sebaka sa blob e hlahisitsoeng ho faele ea tlhophiso ea JSON (ho e-na le ho kenya faele ea JavaScript sebakeng sa eona).
  • Khokahano e ntlafalitsoeng ea Web Crypto API le ts'ebetsong ho tsoa mererong e meng.
  • E kenyellelitse tšehetso ea semmuso bakeng sa Windows ho litsamaiso tsa ARM64.
  • Ts'ehetso e tsoelang pele bakeng sa lisebelisoa tsa WASI (WebAssembly System Interface) bakeng sa ho theha lisebelisoa tse ikemetseng tsa WebAssembly. E tlositse tlhoko ea ho hlakisa folakha e khethehileng ea mola oa taelo ho thusa tšehetso ea WASI.

Sethala sa Node.js se ka sebelisoa ka bobeli bakeng sa tlhokomelo ea li-server tsa lits'ebetso tsa Webo le ho theha mananeo a tloaelehileng a bareki le marang-rang. Ho holisa ts'ebetso ea lits'ebetso tsa Node.js, ho lokiselitsoe pokello e kholo ea li-module, tseo ho tsona u ka fumanang li-module tse nang le ts'ebetsong ea HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 li-server le bareki, li-module tsa ho kopanya. ka mekhoa e fapaneng ea marang-rang, li-WebSocket le li-Ajax handlers , li-connectors tsa DBMS (MySQL, PostgreSQL, SQLite, MongoDB), li-engines tsa templating, lienjineri tsa CSS, ts'ebetsong ea li-algorithms tsa crypto le litsamaiso tsa tumello (OAuth), li-parser tsa XML.

Ho netefatsa ts'ebetso ea palo e kholo ea likopo tse ts'oanang, Node.js e sebelisa mokhoa o sa ts'oaneng oa ts'ebetso oa khoutu o ipapisitseng le ts'ebetso e sa thibeleng ea ketsahalo le tlhaloso ea batšoantšisi ba callback. Mekhoa e tšehelitsoeng bakeng sa likhokahano tsa multiplexing ke epoll, kqueue, /dev/poll, le khetha. Bakeng sa ho kopanya li-multiplexing, ho sebelisoa laeborari ea libuv, e leng tlatsetso bakeng sa libev lits'ebetsong tsa Unix le IOCP ho Windows. Laebrari ea libeio e sebelisetsoa ho etsa letamo la likhoele, 'me li-c-ares li kopantsoe ho etsa lipotso tsa DNS ka mokhoa o sa thibeleng. Mehala eohle ea sistimi e bakang thibelo e etsoa ka har'a letamo la likhoele, ebe, joalo ka batšoasi ba matšoao, ba fetisetsa sephetho sa mosebetsi oa bona ka phala e sa boleloang ka lebitso (pipe). Ts'ebetso ea khoutu ea JavaScript e fanoa ka ts'ebeliso ea enjene ea V8 e ntlafalitsoeng ke Google (ho feta moo, Microsoft e nts'etsapele mofuta oa Node.js ka enjene ea Chakra-Core).

Motheong oa eona, Node.js e tšoana le Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks, le ts'ebetsong ea ketsahalo ea Tcl, empa leqhubu la ketsahalo ho Node.js le patiloe ho moqapi 'me le tšoana le ketsahalo ea ho sebetsana le ts'ebeliso ea websaete e sebetsang. ho seshebisi. Ha u ngola likopo tsa node.js, u lokela ho nahana ka lintlha tse tobileng tsa lenaneo le tsamaisoang ke liketsahalo, mohlala, ho e-na le ho etsa "var result = db.query("select..");" ka ho emela ho phethoa ha mosebetsi le ts'ebetso e latelang ea liphetho, Node.js e sebelisa molao-motheo oa ts'ebetso ea asynchronous, i.e. khoutu e fetoloa "db.query ("khetha ..", mosebetsi (sephetho) {result processing});", moo taolo e tla fetela hang-hang ho khoutu e eketsehileng, 'me sephetho sa potso se tla sebetsoa ha data e fihla.

Source: opennet.ru

Eketsa ka tlhaloso