Platform JavaScript sisi server Node.js 20.0 sayogi

Pelepasan Node.js 20.0, platform pikeun ngaéksekusi aplikasi jaringan dina JavaScript, parantos dilaksanakeun. Node.js 20.0 geus ditugaskeun ka cabang rojongan panjang, tapi status ieu moal ditugaskeun dugi Oktober, sanggeus stabilisasi. Node.js 20.x bakal dirojong dugi ka 30 April 2026. Pangropéa cabang Node.js 18.x LTS saméméhna bakal dugi ka April 2025, sareng cabang 16.x LTS sateuacana dugi ka Séptémber 2023. Cabang 14.x LTS bakal ditunda dina 30 April, sareng cabang interim Node.js 19.x dina 1 Juni.

Perbaikan utama:

  • Mesin V8 parantos diropéa kana versi 11.3, anu dianggo dina Chromium 113. Tina parobahan dibandingkeun sareng cabang Node.js 19, anu nganggo mesin Chromium 107, fungsi String.prototype.isWellFormed sareng toWellFormed, Array.prototype. sarta TypedArray.prototype métode pikeun gawé bareng salinan on robah objék Array na TypedArray, "v" bandéra di RegExp, rojongan pikeun pangaturan ukuran jadi ArrayBuffer sarta ngaronjatkeun ukuran SharedArrayBuffer, buntut-panggero di WebAssembly.
  • Mékanisme Modél Idin ékspérimén diusulkeun anu ngamungkinkeun anjeun ngabatesan aksés ka sumber-sumber anu tangtu nalika palaksanaan. Pangrojong Modél Idin diaktipkeun ku nangtukeun bendera "--experimental-permission" nalika ngajalankeun. Dina palaksanaan awal, pilihan anu diusulkeun pikeun ngawatesan nulis (--allow-fs-write) jeung maca (--allow-fs-read) aksés ka bagian nu tangtu FS, prosés anak (--allow-child-process) , add-ons (--no-addons) jeung threads (--allow-worker). Contona, pikeun ngidinan nulis kana diréktori /tmp jeung maca file /home/index.js, Anjeun bisa nangtukeun: node --experimental-permission --allow-fs-write=/tmp/ --allow-fs-read =/home/index.js indéks .js

    Pikeun pariksa aksés, eta disarankeun pikeun ngagunakeun process.permission.has () métode, Contona, "process.permission.has ('fs.write',"/tmp/test").

  • Handlers pikeun modul éksternal ECMAScript (ESMs) dimuat via pilihan "--experimental-loader" ayeuna dieksekusi dina thread misah, terasing tina thread utama, nu eliminates simpang kode aplikasi tur dimuat modul ESM. Sarupa jeung panyungsi, metoda import.meta.resolve() ayeuna ngajalankeun sinkron lamun disebut ti jero hiji aplikasi. Dina salah sahiji cabang salajengna Node.js, rojongan ESM loading rencanana dipindahkeun ka kategori fitur stabil.
  • Node:test (test_runner) modul, dirancang pikeun nyieun tur ngajalankeun tés JavaScript nu balik hasil dina format TAP (Test Anything Protocol), geus dipindahkeun ka stabil.
  • Hiji tim kinerja misah geus kabentuk, nu, dina préparasi cabang anyar, geus digawé pikeun nyepetkeun rupa komponén runtime, kaasup parsing URL, fetch () sarta EventTarget. Contona, overhead of initializing EventTarget geus satengahna, kinerja URL.canParse() métode geus nyata ningkat, sarta efisiensi timers geus ningkat. Salaku tambahan, sékrési parser URL kinerja tinggi - Ada 2.0, ditulis dina C ++, kalebet dina komposisi.
  • Ngembangkeun fitur ékspérimén pikeun ngirimkeun aplikasi dina bentuk file anu tiasa dieksekusi (SEA, Aplikasi anu tiasa dieksekusi Tunggal) parantos diteruskeun. Nyiptakeun laksana ayeuna peryogi ngagentos gumpalan anu dihasilkeun tina file konfigurasi JSON (tinimbang ngagentos file JavaScript).
  • Ningkatkeun kasaluyuan Web Crypto API kalawan palaksanaan ti proyék séjén.
  • Dukungan resmi ditambahkeun Windows dina sistem ARM64.
  • Terus ngadukung ekstensi WASI (WebAssembly System Interface) pikeun nyiptakeun aplikasi WebAssembly mandiri. Dipiceun kudu nangtukeun hiji bandéra garis paréntah husus sangkan rojongan WASI.

Platform Node.js tiasa dianggo pikeun dukungan aplikasi wéb sisi server sareng pikeun nyiptakeun program jaringan sisi klien sareng server standar. Pikeun ngalegaan fungsi aplikasi Node.js, seueur pisan modul anu parantos disiapkeun, kalebet anu ngalaksanakeunana. server sareng klien HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, modul pikeun integrasi sareng rupa-rupa kerangka wéb, pangendali WebSocket sareng Ajax, konektor ka DBMS (MySQL, PostgreSQL, SQLite, MongoDB), mesin témplat, mesin CSS, implementasi algoritma kriptografi sareng sistem otorisasina (OAuth), parser XML.

Pikeun nanganan sajumlah ageung pamundut paralel, Node.js nganggo modél palaksanaan kode asinkron dumasar kana pamrosésan kajadian anu henteu ngahalangan sareng pangendali callback. Métode multiplexing konéksi anu dirojong kalebet epoll, kqueue, /dev/poll, sareng select. Perpustakaan libuv, anu mangrupikeun superset libev dina sistem Unix sareng IOCP dina IOCP, dianggo pikeun multiplexing konéksi. WindowsPustaka libeio dianggo pikeun nyieun kumpulan thread, sareng c-ares diintegrasikeun pikeun ngalaksanakeun pamundut DNS dina modeu non-blocking. Sadaya panggero sistem blocking dijalankeun dina kumpulan thread teras, sapertos pangendali sinyal, mulangkeun hasilna ngalangkungan pipa anu teu dingaranan. Éksekusi JavaScript disayogikeun ku mesin V8 Google (Microsoft ogé ngembangkeun varian Node.js nganggo 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

Mésér hosting anu dipercaya pikeun situs anu gaduh panyalindungan DDoS, server VPS VDS 🔥 Meser hosting situs wéb anu tiasa dipercaya nganggo panyalindungan DDoS, server VPS VDS | ProHoster