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

Node.js 21.0 e ile ea lokolloa, sethala sa ho tsamaisa lits'ebetso tsa marang-rang ho JavaScript. Lekala la Node.js 21.0 le tla tšehetsoa ka likhoeli tse 6. Matsatsing a tlang, ho tsitsisoa ha lekala la Node.js 20 ho tla phethoa, e tla fumana boemo ba LTS mme e tla tšehetsoa ho fihlela ka April 2026. Tlhokomelo ea lekala la pele la LTS la Node.js 18.0 e tla tšoarella ho fihlela Loetse 2025, le selemo pele ho LTS lekala la 16.0 ho fihlela Mmesa 2024.

Lintlafatso tsa mantlha:

  • The Fetch API e phatlalalitsoe e tsitsitse, e etselitsoe ho kenya lisebelisoa holim'a marang-rang le ho nolofatsa ho ngoloa ha khoutu ea JavaScript ea bokahohle e loketseng ho sebetsa ho seva le mahlakoreng a bareki. Ts'ebetsong e thehiloe ho khoutu e tsoang ho mofani oa HTTP/1.1 undici mme e haufi haholo le API e ts'oanang e fanoeng ho libatli. API e kenyelletsa mokhoa oa ho lata() le lintho tsa lihlooho. Kopo le Karabo, e emelang lihlooho tsa HTTP, kopo le karabo. const res = emela ho lata('https://nodejs.org/api/documentation.json'); haeba (res.ok) {consst data = wait res.json(); console.log(data); }
  • Tšehetso bakeng sa WebStreams API, e fanang ka phihlelo ea melaetsa ea data e amoheloang holim'a marang-rang, e tsitsitse. API e etsa hore ho khonehe ho eketsa bahlokomeli ba hau ba sebetsang ka data ha boitsebiso bo fihla holim'a marang-rang, ntle le ho emela hore faele eohle e jarolloe. Lintho tse fumanehang ho Node.js li kenyelletsa ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream, le DecompressionStream.
  • E kentse ts'ebetsong ea liteko ea moreki oa WebSocket, e tsamaellanang le libatli. Ho nolofalletsa tšehetso ea WebSocket, ho fanoe ka folakha ea "-experimental-websocket".
  • E kentse mokhoa oa teko bakeng sa ho sebelisa mokhoa oa kamehla oa JavaScript oa ESM (ECMAScript Modules, o sebelisoang ho li-browser) sebakeng sa CommonJS (e khethehileng ho Node.js). Phetoho ha e ame likarolo tseo sebopeho sa tsona se hlalosoang ka ho hlaka ka karolo ea "mofuta" ho package.json, e boletsoeng ka "-input-type" folakha, kapa e totobetse ka lebaka la katoloso ea faele (.mjs bakeng sa ESM, .cjs bakeng sa CommonJS). Leha ho le joalo, li-module tse sa hlalosoang ka ho hlaka e le CommonJS (ka mohlala, li na le ".js" extension) li tla tšoaroa e le li-module tsa ESM ha mokhoa o mocha o sebetsa. Ho kenya tšebetsong litlhophiso tse ncha tsa mojule, ho entsoe tlhahiso ea "--experimental-default-type".
  • Enjene ea V8 e nchafalitsoe ho mofuta oa 11.8, e sebelisoang ho Chromium 118, eo hona joale e tšehetsang mokhoa oa ArrayBuffer.prototype.transfer, bokhoni ba ho hlophisa lihlopha (groupBy method) le litaelo tsa WebAssembly bakeng sa ho sebetsana le li-constants (i32.add, i32.sub, i32.mul, i64 .add, i64.sub le i64.mul).
  • Ts'ehetso ea globalPreload handler e khaolitsoe, molemong oa ho ngolisa le ho qala mehala ho lokisa li-module.
  • Kgetho ya "flush" e kenyelleditswe tshebetsong ya fs.writeFile ho qobella data hore e tlosoe koloing ka mora mosebetsi o mong le o mong wa ho ngola.
  • Ts'ebetso e ntlafetseng ea khoutu e amanang le ho arola ha URL, ho lata API, melapo, node:fs, le HTTP.
  • E kentse ntho ea navigator ea lefats'e. Ka mohlala, ho fumana lintlha tse mabapi le palo ea li-CPU cores, u ka sebelisa thepa ea navigator.hardwareConcurrency.
  • Ho "-test" paramethareng, ho kenyellelitsoe tšehetso bakeng sa limaske tsa glob bakeng sa ho khetha liteko tse lokelang ho etsoa (mohlala, o ka hlakisa “—test **/*.test.js.”).
  • Motsamaisi oa sephutheloana o kopantsoeng npm 10.2.0 le llhttp 9.1.2 parser li ntlafalitsoe.
  • Ts'ehetso ea Visual Studio 2019 le mefuta ea macOS ea khale ho feta 11.0 e khaotsoe.

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