Platform JavaScript sisi server Node.js 21.0 sayogi

Node.js 21.0 dirilis, platform pikeun ngajalankeun aplikasi jaringan dina JavaScript. Cabang Node.js 21.0 bakal dirojong salami 6 bulan. Dina dinten anu bakal datang, stabilisasi cabang Node.js 20 bakal réngsé, anu bakal nampi status LTS sareng bakal didukung dugi ka April 2026. Pangropéa cabang LTS sateuacana Node.js 18.0 bakal dugi ka Séptémber 2025, sareng sataun sateuacan cabang LTS terakhir 16.0 dugi ka April 2024.

Perbaikan utama:

  • API Dipulut geus dinyatakeun stabil, dirancang pikeun ngamuat sumberdaya ngaliwatan jaringan jeung simplify tulisan kode JavaScript universal cocog pikeun digawé di sisi server na klien. Palaksanaan ieu dumasar kana kode ti HTTP / 1.1 klien undici sarta sacaket mungkin ka API sarupa disadiakeun dina panyungsi. API ngawengku métode fetch () jeung objék Headers. Request and Response, ngalambangkeun headers HTTP, pamundut sareng réspon. const res = ngantosan dipulut ('https://nodejs.org/api/documentation.json'); lamun (res.ok) {const data = await res.json (); console.log(data); }
  • Rojongan pikeun WebStreams API, nu nyadiakeun aksés ka aliran data narima ngaliwatan jaringan, geus stabilized. API ngamungkinkeun pikeun nambahkeun pawang sorangan nu dianggo kalayan data sakumaha informasi datang ngaliwatan jaringan, tanpa ngantosan sakabéh file diundeur. Objék anu aya dina Node.js kalebet ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream, sareng DecompressionStream.
  • Ditambahkeun palaksanaan ékspérimén klien WebSocket, cocog sareng panyungsi. Pikeun ngaktifkeun dukungan WebSocket, bendera "--experimental-websocket" disayogikeun.
  • Ditambahkeun hiji mode ékspérimén pikeun ngagunakeun palaksanaan standar JavaScript modul ESM (Modul ECMAScript, dipaké dina modul keur browser) tinimbang CommonJS (husus pikeun Node.js). Parobahan henteu mangaruhan modul anu formatna didefinisikeun sacara eksplisit via widang "tipe" dina package.json, ditunjukkeun ku bandéra "--input-type", atanapi écés kusabab ekstensi file (.mjs pikeun ESM, .cjs). pikeun CommonJS). Sanajan kitu, modul nu teu eksplisit dihartikeun salaku CommonJS (Contona, boga extension ".js") bakal dianggap salaku modul ESM nalika mode anyar diaktipkeun. Pikeun ngaktipkeun setelan modul anyar, bendera "--experimental-default-type" geus diajukeun.
  • Mesin V8 parantos diropéa kana versi 11.8, dianggo dina Chromium 118, anu ayeuna ngadukung metode ArrayBuffer.prototype.transfer, kamampuan pikeun ngagolongkeun arrays (metode groupBy) sareng parentah WebAssembly pikeun ngolah konstanta (i32.add, i32.sub, i32.mul, i64 .add, i64.sub jeung i64.mul).
  • Rojongan pikeun globalPreload Handler geus dilanjutkeun, dina ni'mat register na initialize panggero pikeun ngonpigurasikeun modul.
  • A "siram" pilihan geus ditambahkeun kana fungsi fs.writeFile maksakeun data pikeun flushed kana drive sanggeus unggal operasi nulis.
  • Ningkatkeun kinerja kode anu aya hubunganana sareng parsing URL, fetch API, streams, node:fs, sareng HTTP.
  • Ditambahkeun obyék navigator global. Contona, pikeun ménta data ngeunaan jumlah cores CPU, anjeun tiasa nganggo harta navigator.hardwareConcurrency.
  • Dina parameter "—test", rojongan pikeun masker glob geus ditambahkeun pikeun milih tés pikeun ngajalankeun (contona, Anjeun bisa nangtukeun "-test **/*.test.js.").
  • Pangatur pakét anu dibuntel npm 10.2.0 sareng parser llhttp 9.1.2 parantos diropéa.
  • Rojongan pikeun Visual Studio 2019 sareng vérsi macOS langkung lami ti 11.0 parantos dileungitkeun.

Platform Node.js tiasa dianggo pikeun pangropéa pangladén aplikasi wéb sareng pikeun nyiptakeun program jaringan klien sareng server biasa. Pikeun dilegakeun pungsionalitas aplikasi pikeun Node.js, kumpulan modul anu ageung parantos disiapkeun, dimana anjeun tiasa mendakan modul kalayan palaksanaan HTTP, SMTP, XMPP, DNS, FTP, IMAP, server POP3 sareng klien, modul pikeun integrasi. kalawan rupa web frameworks, WebSocket na AJAX pawang , panyambungna DBMS (MySQL, PostgreSQL, SQLite, MongoDB), mesin templating, mesin CSS, palaksanaan algoritma crypto sarta sistem otorisasina (OAuth), XML parsers.

Pikeun mastikeun ngolah sajumlah ageung pamundut paralel, Node.js nganggo modél palaksanaan kode Asynchronous dumasar kana penanganan acara non-blocking sareng definisi panangan callback. Métode anu dirojong pikeun sambungan multiplexing nyaéta epoll, kqueue, / dev / poll, sareng pilih. Pikeun sambungan multiplexing, perpustakaan libuv dipaké, nu mangrupa tambihan-on pikeun libev on sistem Unix sarta IOCP on Windows. Perpustakaan libeio dipaké pikeun nyieun kolam renang thread, sarta c-ares ieu terpadu pikeun ngalakukeun queries DNS dina modeu non-blocking. Sadaya panggero sistem anu nyababkeun blocking dieksekusi di jero kolam renang teras, sapertos panangan sinyal, nransferkeun hasil padamelanna deui ngaliwatan pipa anu henteu namina (pipa). Eksekusi kode JavaScript disayogikeun ku ngagunakeun mesin V8 anu dikembangkeun ku Google (sajaba ti éta, Microsoft ngembangkeun versi Node.js sareng mesin Chakra-Core).

Intina, Node.js sami sareng Perl AnyEvent, Mesin Acara Ruby, kerangka Python Twisted, sareng palaksanaan acara Tcl, tapi loop acara di Node.js disumputkeun tina pamekar sareng nyarupaan penanganan acara dina aplikasi wéb anu ngajalankeun. dina browser. Nalika nulis aplikasi pikeun node.js, Anjeun kudu mertimbangkeun spésifik program acara-disetir, contona, tinimbang ngalakukeun "var hasil = db.query ("pilih ..");" kalayan ngantosan parantosan padamelan sareng ngolah hasil salajengna, Node.js nganggo prinsip palaksanaan asinkron, nyaéta. kode ieu ngajanggélék jadi "db.query ("pilih ..", fungsi (hasil) {prosés hasil});", nu kontrol bakal langsung ngalirkeun kana kode salajengna, sarta hasil query bakal diolah sakumaha data datang.

sumber: opennet.ru

Tambahkeun komentar