Keluaran JavaScript Node.js 16.0 bahagian pelayan

Node.js 16.0 telah dikeluarkan, platform untuk menjalankan aplikasi rangkaian dalam JavaScript. Node.js 16.0 diklasifikasikan sebagai cawangan sokongan jangka panjang, tetapi status ini akan diberikan hanya pada bulan Oktober, selepas penstabilan. Node.js 16.0 akan disokong sehingga April 2023. Penyelenggaraan cawangan LTS Node.js 14.0 sebelumnya akan berlangsung sehingga April 2023, dan tahun sebelum cawangan LTS terakhir 12.0 hingga April 2022. Sokongan untuk cawangan 10.0 LTS akan dihentikan dalam masa 10 hari.

Penambahbaikan utama:

  • Enjin V8 telah dikemas kini kepada versi 9.0 (Node.js 15 menggunakan keluaran 8.6), yang membenarkan pelaksanaan ciri seperti sifat "indeks" untuk ungkapan biasa (termasuk tatasusunan dengan kedudukan permulaan dan penamat kumpulan padanan) , kaedah Atomics dalam Node.js 16 .waitAsync (versi async Atomics.wait), sokongan untuk menggunakan kata kunci await dalam modul peringkat atas. Panggilan fungsi telah dipercepatkan dalam situasi di mana bilangan hujah yang diluluskan tidak sepadan dengan parameter yang ditakrifkan dalam fungsi.
  • API Janji Pemasa telah distabilkan, menyediakan set fungsi alternatif untuk bekerja dengan pemasa yang mengembalikan objek Promise sebagai output, yang menghapuskan keperluan untuk menggunakan util.promisify(). import { setTimeout } daripada 'pemasa/janji'; fungsi async run() { tunggu setTimeout(5000); console.log('Hello, Dunia!'); } run();
  • Pelaksanaan percubaan Web Crypto API telah ditambah, direka bentuk untuk melaksanakan operasi kriptografi asas di sisi aplikasi web, seperti memanipulasi cincang kriptografi, menjana dan mengesahkan tandatangan digital, mengekod dan menyahkod data menggunakan pelbagai kaedah penyulitan, dan menjana selamat dari segi kriptografi. nombor rawak. API juga menyediakan fungsi untuk menjana dan mengurus kunci.
  • N-API (API untuk membangunkan alat tambah) telah dikemas kini kepada versi 8.
  • Peralihan kepada keluaran baharu pengurus pakej NPM 7.10 telah dibuat.
  • Menstabilkan pelaksanaan kelas AbortController, yang berdasarkan API Web AbortController dan membenarkan isyarat dibatalkan dalam API berasaskan Promise yang dipilih.
  • Sokongan untuk versi ketiga format Peta Sumber, yang digunakan untuk membandingkan modul yang dijana, diproses atau dibungkus dengan kod sumber asal, telah distabilkan.
  • Untuk keserasian dengan API Web lama, kaedah buffer.atob(data) dan buffer.btoa(data) telah ditambahkan.
  • Pembentukan pemasangan untuk peranti Apple baharu yang dilengkapi dengan cip M1 ARM telah bermula.
  • Pada platform Linux, keperluan versi pengkompil telah dinaikkan kepada GCC 8.3.

Mari kita ingat bahawa platform Node.js boleh digunakan untuk sokongan sisi pelayan bagi aplikasi Web dan untuk mencipta program rangkaian klien 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 kepada DBMS (MySQL, PostgreSQL, SQLite, MongoDB), enjin templat, enjin CSS, pelaksanaan algoritma kriptografi 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.

Selain itu, boleh diperhatikan bahawa syarikat Deno, yang diasaskan oleh pencipta Node.js untuk membangunkan platform Deno generasi akan datang, menerima pelaburan sebanyak $4.9 juta. Dalam tujuannya, Deno adalah serupa dengan Node.js, tetapi ia cuba menghapuskan ralat konsep yang dibuat dalam seni bina Node.js dan menyediakan pengguna dengan persekitaran yang lebih selamat. Adalah diperhatikan bahawa penyelesaian perniagaan Deno akan dibina pada produk terbuka sepenuhnya, dan model Teras Terbuka dengan fungsi berbayar yang berasingan dianggap tidak boleh diterima untuk platform Deno.

Sumber: opennet.ru

Tambah komen