Rilis JavaScript Node.js 16.0 sisi server

Node.js 16.0, sebuah platform untuk menjalankan aplikasi jaringan dalam JavaScript, telah dirilis. Node.js 16.0 diklasifikasikan sebagai cabang dukungan jangka panjang, tetapi status ini hanya akan ditetapkan pada bulan Oktober, setelah stabilisasi. Node.js 16.0 akan didukung hingga April 2023. Pemeliharaan cabang LTS Node.js 14.0 sebelumnya akan berlangsung hingga April 2023, dan tahun sebelum cabang LTS 12.0 terakhir hingga April 2022. Dukungan untuk cabang 10.0 LTS akan dihentikan dalam 10 hari.

Perbaikan utama:

  • Mesin V8 telah diperbarui ke versi 9.0 (Node.js 15 menggunakan rilis 8.6), yang memungkinkan penerapan fitur seperti properti β€œindeks” untuk ekspresi reguler (termasuk larik dengan posisi awal dan akhir grup kecocokan) , metode Atomics di Node.js 16 .waitAsync (versi async dari Atomics.wait), dukungan untuk menggunakan kata kunci menunggu di modul tingkat atas. Pemanggilan fungsi telah dipercepat dalam situasi di mana jumlah argumen yang diteruskan tidak sesuai dengan parameter yang ditentukan dalam fungsi.
  • Timers Promises API telah distabilkan, menyediakan serangkaian fungsi alternatif untuk bekerja dengan timer yang mengembalikan objek Promise sebagai output, sehingga menghilangkan kebutuhan untuk menggunakan util.promisify(). impor { setTimeout } dari 'timer/janji'; fungsi async run() { menunggu setTimeout(5000); console.log('Halo, Dunia!'); } berlari();
  • Implementasi eksperimental Web Crypto API telah ditambahkan, dirancang untuk melakukan operasi kriptografi dasar di sisi aplikasi web, seperti memanipulasi hash kriptografi, menghasilkan dan memverifikasi tanda tangan digital, menyandikan dan mendekode data menggunakan berbagai metode enkripsi, dan menghasilkan keamanan kriptografi nomor acak. API juga menyediakan fungsi untuk menghasilkan dan mengelola kunci.
  • N-API (API untuk pengembangan add-on) telah diperbarui ke versi 8.
  • Transisi ke rilis baru manajer paket NPM 7.10 telah dilakukan.
  • Menstabilkan implementasi kelas AbortController, yang didasarkan pada API Web AbortController dan memungkinkan pembatalan sinyal di API berbasis Promise tertentu.
  • Dukungan untuk format Peta Sumber versi ketiga, yang digunakan untuk membandingkan modul yang dihasilkan, diproses, atau dikemas dengan kode sumber asli, telah distabilkan.
  • Untuk kompatibilitas dengan API Web lama, metode buffer.atob(data) dan buffer.btoa(data) telah ditambahkan.
  • Pembentukan rakitan perangkat Apple baru yang dilengkapi chip M1 ARM telah dimulai.
  • Pada platform Linux, persyaratan versi kompiler telah dinaikkan ke GCC 8.3.

Ingatlah bahwa platform Node.js dapat digunakan baik untuk pemeliharaan server aplikasi Web maupun untuk membuat program jaringan klien dan server biasa. 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 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.

Selain itu, dapat dicatat bahwa perusahaan Deno, yang didirikan oleh pencipta Node.js untuk mengembangkan platform Deno generasi berikutnya, menerima investasi sebesar $4.9 juta. Tujuannya, Deno mirip dengan Node.js, tetapi mencoba menghilangkan kesalahan konseptual yang dibuat dalam arsitektur Node.js dan menyediakan lingkungan yang lebih aman bagi pengguna. Perlu dicatat bahwa solusi bisnis Deno akan dibangun pada produk yang sepenuhnya terbuka, dan model Open Core dengan fungsionalitas berbayar terpisah dianggap tidak dapat diterima untuk platform Deno.

Sumber: opennet.ru

Tambah komentar