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.
  • Ditambahkeun dukungan resmi pikeun 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 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