Platform JavaScript sisi server Node.js 19.0 tersedia

Node.js 19.0, sebuah platform untuk menjalankan aplikasi jaringan dalam JavaScript, telah dirilis. Node.js 19 adalah cabang dukungan reguler dengan pembaruan tersedia hingga Juni 2023. Dalam beberapa hari mendatang, stabilisasi cabang Node.js 18 akan selesai, yang akan menerima status LTS dan akan didukung hingga April 2025. Pemeliharaan cabang LTS Node.js 16.0 sebelumnya akan berlangsung hingga September 2023, dan tahun sebelum LTS cabang 14.0 terakhir hingga April 2023.

Perbaikan utama:

  • Mesin V8 telah diperbarui ke versi 10.7, digunakan di Chromium 107. Di antara perubahan mesin dibandingkan dengan cabang Node.js 18, implementasi versi ketiga dari Intl.NumberFormat API dicatat, yang menambahkan fungsi baru formatRange (), formatRangeToParts() dan selectRange(), pengelompokan set, opsi baru untuk pembulatan dan pengaturan presisi, kemampuan untuk menafsirkan string sebagai angka desimal. Dependensi yang disertakan llhttp 8.1.0 dan npm 8.19.2 juga telah diperbarui.
  • Perintah eksperimental "node -watch" telah diusulkan dengan penerapan mode jam tangan yang memastikan bahwa proses dimulai ulang ketika file yang diimpor berubah (misalnya, jika "node -watch index.js" dijalankan, prosesnya akan menjadi otomatis dimulai ulang ketika index.js berubah).
  • Untuk semua koneksi HTTP/HTTPS keluar, dukungan untuk mekanisme HTTP 1.1 Keep-Alive diaktifkan, yang membiarkan koneksi terbuka selama waktu tertentu untuk memproses beberapa permintaan HTTP dalam koneksi yang sama. Keep-Alive diharapkan dapat meningkatkan throughput dan kinerja. Secara default, batas waktu buka koneksi diatur ke 5 detik. Dukungan untuk mengurai header HTTP Keep-Alive dalam respons server telah ditambahkan ke implementasi klien HTTP, dan pemutusan otomatis klien yang tidak aktif menggunakan Keep-Alive telah ditambahkan ke implementasi server HTTP Node.js.
  • WebCrypto API telah dipindahkan ke kategori stabil, dengan pengecualian fungsi yang menggunakan algoritma Ed25519, Ed448, X25519 dan X448. Untuk mengakses modul WebCrypto Anda sekarang dapat menggunakan globalThis.crypto atau require('node:crypto').webcrypto.
  • Dukungan untuk alat penelusuran DTrace, SystemTap, dan ETW (Event Tracing for Windows) telah dihapus, yang pemeliharaannya dianggap tidak tepat karena rumitnya memperbaruinya karena tidak adanya rencana dukungan yang tepat.

Platform Node.js dapat digunakan baik untuk pemeliharaan server aplikasi Web maupun untuk membuat program jaringan klien dan server reguler. Untuk memperluas fungsionalitas aplikasi untuk Node.js, kumpulan besar modul telah disiapkan, di mana Anda dapat menemukan modul dengan penerapan HTTP, SMTP, XMPP, DNS, FTP, IMAP, server dan klien POP3, modul untuk integrasi dengan berbagai kerangka kerja web, penangan WebSocket dan Ajax , konektor DBMS (MySQL, PostgreSQL, SQLite, MongoDB), mesin templating, mesin CSS, implementasi algoritma kripto dan sistem otorisasi (OAuth), parser XML.

Untuk memastikan pemrosesan sejumlah besar permintaan paralel, Node.js menggunakan model eksekusi kode asinkron berdasarkan penanganan peristiwa non-pemblokiran dan definisi penangan panggilan balik. Metode yang didukung untuk koneksi multiplexing adalah epoll, kqueue, /dev/poll, dan pilih. Untuk multiplexing koneksi, perpustakaan libuv digunakan, yang merupakan add-on untuk libev pada sistem Unix dan IOCP pada Windows. Pustaka libeio digunakan untuk membuat kumpulan utas, dan c-ares terintegrasi untuk melakukan kueri DNS dalam mode non-pemblokiran. Semua panggilan sistem yang menyebabkan pemblokiran dijalankan di dalam kumpulan utas dan kemudian, seperti penangan sinyal, mentransfer kembali hasil pekerjaannya melalui pipa (pipa) yang tidak disebutkan namanya. Eksekusi kode JavaScript disediakan melalui penggunaan mesin V8 yang dikembangkan oleh Google (selain itu, Microsoft sedang mengembangkan versi Node.js dengan mesin Chakra-Core).

Pada intinya, Node.js mirip dengan Perl AnyEvent, Ruby Event Machine, framework Python Twisted, dan implementasi event Tcl, tetapi event loop di Node.js disembunyikan dari pengembang dan menyerupai penanganan event di aplikasi web yang sedang berjalan di browser. Saat menulis aplikasi untuk node.js, Anda perlu mempertimbangkan spesifikasi pemrograman berbasis peristiwa, misalnya, alih-alih melakukan "var result = db.query("select..");" dengan menunggu penyelesaian pekerjaan dan pemrosesan hasil selanjutnya, Node.js menggunakan prinsip eksekusi asinkron, yaitu kode diubah menjadi "db.query("pilih..", fungsi (hasil) {pemrosesan hasil});", di mana kontrol akan langsung beralih ke kode lebih lanjut, dan hasil kueri akan diproses saat data tiba.

Sumber: opennet.ru

Tambah komentar