Platform JavaScript sisih server Node.js 20.0 kasedhiya

Rilis Node.js 20.0, platform kanggo ngeksekusi aplikasi jaringan ing JavaScript, wis kelakon. Node.js 20.0 wis diutus kanggo cabang support dawa, nanging status iki ora bakal diutus nganti Oktober, sawise stabil. Node.js 20.x bakal didhukung nganti 30 April 2026. Pangopènan cabang Node.js 18.x LTS sadurungé bakal nganti April 2025, lan cabang 16.x LTS sadurungé nganti September 2023. Cabang 14.x LTS bakal ditahan tanggal 30 April, lan cabang interim Node.js 19.x tanggal 1 Juni.

dandan utama:

  • Mesin V8 wis dianyari versi 11.3, sing digunakake ing Chromium 113. Saka owah-owahan dibandhingake karo cabang Node.js 19, sing nggunakake mesin Chromium 107, fungsi String.prototype.isWellFormed lan toWellFormed, Array.prototype. lan TypedArray.prototype cara kanggo bisa karo salinan ing owah-owahan saka obyek Array lan TypedArray, "v" flag ing RegExp, support kanggo ngowahi ukuran ArrayBuffer lan nambah ukuran SharedArrayBuffer, buntut-telpon ing WebAssembly.
  • Mekanisme Model Ijin eksperimen diusulake sing ngidini sampeyan mbatesi akses menyang sumber daya tartamtu sajrone eksekusi. Dhukungan Model Ijin diaktifake kanthi nemtokake gendera "--experimental-permission" nalika mlaku. Ing implementasine awal, opsi diusulake kanggo mbatesi akses nulis (--allow-fs-write) lan maca (--allow-fs-read) menyang bagean tartamtu saka FS, proses anak (--allow-child-process) , add-ons (--no-addons ) lan benang (--allow-worker). Contone, kanggo ngidini nulis menyang direktori /tmp lan maca file /home/index.js, sampeyan bisa nemtokake: node --experimental-permission --allow-fs-write=/tmp/ --allow-fs-read =/home/index.js indeks .js

    Kanggo mriksa akses, disaranake nggunakake process.permission.has () cara, contone, "process.permission.has ('fs.write',"/tmp/test").

  • Penangan kanggo modul eksternal ECMAScript (ESMs) sing dimuat liwat opsi "--experimental-loader" saiki dieksekusi ing utas sing kapisah, diisolasi saka utas utama, sing ngilangi persimpangan kode aplikasi lan modul ESM sing dimuat. Kaya browser, metode import.meta.resolve () saiki dieksekusi kanthi sinkron nalika diarani saka aplikasi. Ing salah siji saka cabang sabanjuré saka Node.js, ESM loading support direncanakake bakal dipindhah menyang kategori fitur stabil.
  • Modul node:test (test_runner), dirancang kanggo nggawe lan mbukak tes JavaScript sing ngasilake asil ing format TAP (Test Anything Protocol), wis dipindhah menyang stabil.
  • Tim kinerja kapisah wis kawangun, kang, ing preparation kanggo cabang anyar, wis makarya kanggo nyepetake macem-macem komponen runtime, kalebu parsing URL, njupuk () lan EventTarget. Contone, overhead saka initializing EventTarget wis setengah, kinerja URL.canParse () cara wis Ngartekno apik, lan efficiency saka timer wis apik. Kajaba iku, release saka parser URL kinerja dhuwur - Ada 2.0, ditulis ing C ++, kalebu ing komposisi.
  • Pangembangan fitur eksperimen kanggo ngirim aplikasi ing wangun file eksekusi tunggal (SEA, Aplikasi Eksekusi Tunggal) terus. Nggawe eksekusi saiki mbutuhake ngganti blob sing digawe saka file konfigurasi JSON (tinimbang ngganti file JavaScript).
  • Kompatibilitas Web Crypto API sing luwih apik karo implementasi saka proyek liyane.
  • Ditambahake dhukungan resmi kanggo Windows ing sistem ARM64.
  • Dhukungan terus kanggo ekstensi WASI (WebAssembly System Interface) kanggo nggawe aplikasi WebAssembly mandiri. Mbusak perlu kanggo nemtokake flag baris printah khusus kanggo ngaktifake support WASI.

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