Platform JavaScript bahagian pelayan Node.js 18.0 tersedia

Node.js 18.0 telah dikeluarkan, platform untuk menjalankan aplikasi rangkaian dalam JavaScript. Node.js 18.0 diklasifikasikan sebagai cawangan sokongan jangka panjang, tetapi status ini akan diberikan hanya pada bulan Oktober, selepas penstabilan. Node.js 18.x akan disokong sehingga April 2025. Penyelenggaraan cawangan LTS Node.js 16.x sebelumnya akan berlangsung sehingga April 2024, dan tahun sebelum cawangan LTS terakhir 14.x sehingga April 2023. Cawangan LTS 12.x akan dihentikan pada 30 April dan cawangan pementasan Node.js 17.x akan dihentikan pada 1 Jun.

Penambahbaikan utama:

  • Enjin V8 telah dikemas kini kepada versi 10.1, yang digunakan dalam Chromium 101. Berbanding dengan keluaran 17.9.0 Node.js, kini terdapat sokongan untuk ciri seperti kaedah findLast dan findLastIndex untuk mencari elemen berbanding penghujung tatasusunan dan fungsi Intl.supportedValuesOf. API Antarabangsa Tempatan yang dipertingkatkan. Permulaan medan kelas dan kaedah persendirian telah dipercepatkan.
  • API pengambilan eksperimen () didayakan secara lalai, direka untuk memuatkan sumber melalui rangkaian. Pelaksanaan adalah berdasarkan kod daripada klien HTTP/1.1 undici dan sedekat mungkin dengan API serupa yang disediakan dalam penyemak imbas. Ini termasuk sokongan untuk antara muka FormData, Pengepala, Permintaan dan Respons untuk memanipulasi pengepala permintaan dan respons HTTP. const res = await fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = tunggu res.json(); console.log(data); }
  • Pelaksanaan percubaan Web Streams API telah ditambahkan, memberikan akses kepada aliran data yang diterima melalui rangkaian. API memungkinkan untuk menambah pengendali anda sendiri untuk bekerja dengan data apabila maklumat tiba melalui rangkaian, tanpa menunggu keseluruhan fail dimuat turun. Objek kini tersedia dalam Node.js termasuk ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream dan DecompressionStream.
  • API Blob telah dialihkan kepada stabil, membolehkan anda merangkum data mentah yang tidak boleh diubah untuk kegunaan selamat dalam rangkaian pekerja yang berbeza.
  • API BroadcastChannel telah dibuat stabil, membolehkan anda mengatur pertukaran mesej dalam mod tak segerak dalam format "satu pengirim - banyak penerima".
  • Menambahkan nod modul eksperimen: ujian untuk membuat dan menjalankan ujian dalam JavaScript yang mengembalikan hasil dalam format TAP (Test Anything Protocol).
  • Penjanaan pemasangan siap sedia untuk Red Hat Enterprise Linux (RHEL) 8 dan pengedaran lain berdasarkan Glibc 2.28+, termasuk Debian 10 dan Ubuntu 20.04, serta untuk macOS 10.15+ disediakan. Disebabkan masalah dengan binaan enjin V8, penciptaan binaan 32-bit untuk Windows telah dihentikan buat sementara waktu.
  • Menyediakan pilihan percubaan untuk membina Node.js boleh laku dengan komponen pilihan pengguna yang dimulakan pada permulaan. Untuk menentukan komponen permulaan, pilihan "--node-snapshot-main" telah ditambahkan pada skrip binaan konfigurasi, contohnya, "./configure β€”node-snapshot-main=marked.js; nod nama"

Platform Node.js boleh digunakan untuk penyelenggaraan pelayan aplikasi Web dan untuk mencipta program rangkaian pelanggan dan pelayan biasa. Untuk mengembangkan fungsi aplikasi untuk Node.js, koleksi modul yang besar telah disediakan, di mana anda boleh mencari modul dengan pelaksanaan HTTP, SMTP, XMPP, DNS, FTP, IMAP, pelayan dan klien POP3, modul untuk penyepaduan dengan pelbagai rangka kerja web, pengendali WebSocket dan Ajax , penyambung DBMS (MySQL, PostgreSQL, SQLite, MongoDB), enjin templat, enjin CSS, pelaksanaan algoritma kripto dan sistem kebenaran (OAuth), penghurai XML.

Untuk memastikan pemprosesan sejumlah besar permintaan selari, Node.js menggunakan model pelaksanaan kod tak segerak berdasarkan pengendalian acara tanpa sekatan dan takrifan pengendali panggil balik. Kaedah yang disokong untuk pemultipleksan sambungan ialah epoll, kqueue, /dev/poll, dan pilih. Untuk pemultipleksan sambungan, perpustakaan libuv digunakan, yang merupakan tambahan untuk libev pada sistem Unix dan IOCP pada Windows. Pustaka libeio digunakan untuk mencipta kumpulan benang, dan c-ares disepadukan untuk melaksanakan pertanyaan DNS dalam mod tidak menyekat. Semua panggilan sistem yang menyebabkan penyekatan dilaksanakan di dalam kumpulan benang dan kemudian, seperti pengendali isyarat, memindahkan hasil kerja mereka kembali melalui paip (paip) yang tidak dinamakan. Pelaksanaan kod JavaScript disediakan melalui penggunaan enjin V8 yang dibangunkan oleh Google (selain itu, Microsoft sedang membangunkan versi Node.js dengan enjin Chakra-Core).

Pada terasnya, Node.js adalah serupa dengan Perl AnyEvent, Mesin Acara Ruby, rangka kerja Python Twisted dan pelaksanaan acara Tcl, tetapi gelung acara dalam Node.js disembunyikan daripada pembangun dan menyerupai pengendalian acara dalam aplikasi web yang berjalan. dalam pelayar. Apabila menulis aplikasi untuk node.js, anda perlu mempertimbangkan khusus pengaturcaraan dipacu peristiwa, sebagai contoh, dan bukannya melakukan "var result = db.query("select..");" dengan menunggu penyiapan kerja dan pemprosesan hasil seterusnya, Node.js menggunakan prinsip pelaksanaan tak segerak, i.e. kod diubah menjadi "db.query("select..", function (result) {result processing});", di mana kawalan akan serta-merta beralih kepada kod selanjutnya, dan hasil pertanyaan akan diproses apabila data tiba.

Sumber: opennet.ru

Tambah komen