Platform JavaScript sisih server Node.js 21.0 kasedhiya

Node.js 21.0 dirilis, platform kanggo mbukak aplikasi jaringan ing JavaScript. Cabang Node.js 21.0 bakal didhukung suwene 6 wulan. Ing dina sing bakal teka, stabilisasi cabang Node.js 20 bakal rampung, sing bakal nampa status LTS lan bakal didhukung nganti April 2026. Pangopènan cabang LTS sadurunge Node.js 18.0 bakal nganti September 2025, lan taun sadurunge cabang LTS pungkasan 16.0 nganti April 2024.

dandan utama:

  • API Fetch wis diumumake kanthi stabil, dirancang kanggo ngemot sumber daya liwat jaringan lan nyederhanakake panulisan kode JavaScript universal sing cocog kanggo nggarap sisi server lan klien. Implementasine adhedhasar kode saka klien undici HTTP / 1.1 lan cedhak karo API sing padha sing kasedhiya ing browser. API kalebu metode fetch () lan obyek Headers. Request and Response, makili header HTTP, request lan respon. const res = ngenteni njupuk ('https://nodejs.org/api/documentation.json'); yen (res.ok) {const data = ngenteni res.json (); console.log(data); }
  • Dhukungan kanggo WebStreams API, sing nyedhiyakake akses menyang aliran data sing ditampa liwat jaringan, wis stabil. API ndadekake iku bisa kanggo nambah panangan dhewe sing bisa karo data minangka informasi teka liwat jaringan, tanpa ngenteni kabeh file kanggo diundhuh. Obyek sing kasedhiya ing Node.js kalebu ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream, lan DecompressionStream.
  • Nambahake implementasi eksperimen klien WebSocket, kompatibel karo browser. Kanggo ngaktifake dhukungan WebSocket, gendera "--experimental-websocket" diwenehake.
  • Nambahake mode eksperimen kanggo nggunakake implementasi standar saka modul JavaScript ESM (Modul ECMAScript, digunakake ing modul kanggo browser) tinimbang CommonJS (khusus kanggo Node.js). Owah-owahan ora mengaruhi modul sing format ditetepake kanthi jelas liwat kolom "jinis" ing package.json, sing ditemtokake liwat gendera "--input-type", utawa jelas amarga ekstensi file (.mjs kanggo ESM, .cjs. kanggo CommonJS). Nanging, modul sing ora ditetepake kanthi tegas minangka CommonJS (contone, duwe ekstensi ".js") bakal dianggep minangka modul ESM nalika mode anyar diaktifake. Kanggo ngaktifake setelan modul anyar, gendera "--experimental-default-type" wis diusulake.
  • Mesin V8 wis dianyari kanggo versi 11.8, digunakake ing Chromium 118, kang saiki ndhukung ArrayBuffer.prototype.transfer cara, kemampuan kanggo grup susunan (groupBy method) lan WebAssembly instruksi kanggo ngolah konstanta (i32.add, i32.sub, i32.mul, i64 .nambah, i64.sub lan i64.mul).
  • Dhukungan kanggo handler globalPreload wis mandheg, kanggo ndhaptar lan miwiti telpon kanggo ngatur modul.
  • A "flush" pilihan wis ditambahake kanggo fungsi fs.writeFile kanggo meksa data kanggo flushed menyang drive sawise saben operasi nulis.
  • Kinerja kode sing luwih apik sing ana gandhengane karo parsing URL, njupuk API, stream, node:fs, lan HTTP.
  • Nambahake obyek navigator global. Contone, kanggo njupuk data babagan jumlah inti CPU, sampeyan bisa nggunakake property navigator.hardwareConcurrency.
  • Ing parameter "—test", dhukungan kanggo topeng glob wis ditambahake kanggo milih tes sing bakal ditindakake (contone, sampeyan bisa nemtokake "-test **/*.test.js.").
  • Pangatur paket bundled npm 10.2.0 lan parser llhttp 9.1.2 wis dianyari.
  • Dhukungan kanggo Visual Studio 2019 lan versi macOS sing luwih lawas tinimbang 11.0 wis mandheg.

Platform Node.js bisa digunakake kanggo pangopènan server aplikasi Web lan kanggo nggawe program jaringan klien lan server biasa. Kanggo nggedhekake fungsionalitas aplikasi kanggo Node.js, koleksi modul gedhe wis disiapake, ing ngendi sampeyan bisa nemokake modul kanthi implementasi HTTP, SMTP, XMPP, DNS, FTP, IMAP, server POP3 lan klien, modul kanggo integrasi. kanthi macem-macem kerangka web, panangan WebSocket lan Ajax , konektor DBMS (MySQL, PostgreSQL, SQLite, MongoDB), mesin template, mesin CSS, implementasi algoritma crypto lan sistem wewenang (OAuth), parser XML.

Kanggo mesthekake proses akeh panjalukan paralel, Node.js nggunakake model eksekusi kode bedo adhedhasar penanganan acara non-blocking lan definisi panangan callback. Cara sing didhukung kanggo sambungan multiplexing yaiku epoll, kqueue, /dev/poll, lan pilih. Kanggo multiplexing sambungan, perpustakaan libuv digunakake, sing minangka tambahan kanggo libev ing sistem Unix lan IOCP ing Windows. Pustaka libeio digunakake kanggo nggawe blumbang thread, lan c-ares digabungake kanggo nindakake pitakon DNS ing mode non-blocking. Kabeh panggilan sistem sing nyebabake pamblokiran dieksekusi ing jero kolam benang lan banjur, kaya panangan sinyal, nransfer asil kerjane maneh liwat pipa (pipa) sing ora dijenengi. Eksekusi kode JavaScript diwenehake liwat panggunaan mesin V8 sing dikembangake dening Google (saliyane, Microsoft ngembangake versi Node.js kanthi mesin Chakra-Core).

Ing inti, Node.js mirip karo Perl AnyEvent, Mesin Acara Ruby, kerangka Python Twisted, lan implementasi acara Tcl, nanging loop acara ing Node.js didhelikake saka pangembang lan meh padha karo penanganan acara ing aplikasi web sing mlaku. ing browser. Nalika nulis aplikasi kanggo node.js, sampeyan kudu nimbang spesifik program acara-mimpin, contone, tinimbang nindakake "var hasil = db.query ("pilih ..");" karo ngenteni rampung karya lan pangolahan asil sakteruse, Node.js nggunakake prinsip eksekusi bedo, i.e. kode wis rubah menyang "db.query ("pilih ..", fungsi (asil) {Proses asil});", kang kontrol bakal langsung pass kanggo kode luwih, lan asil query bakal diproses minangka data arrives.

Source: opennet.ru

Add a comment