Rilis JavaScript Node.js 13.0 sisi server

Tersedia melepaskan Node.js 13.0,platform untuk menjalankan aplikasi jaringan dalam JavaScript. Pada saat yang sama, stabilisasi cabang Node.js 12.x sebelumnya telah selesai, yang telah dipindahkan ke kategori rilis dukungan jangka panjang, pembaruan yang dirilis selama 4 tahun. Dukungan untuk cabang LTS 10.0 sebelumnya akan berlangsung hingga April 2021, dan dukungan untuk cabang LTS 8.0 terakhir hingga Januari 2020.

Utama perbaikan:

  • Mesin V8 diperbarui ke versi 7.8, yang menggunakan teknik pengoptimalan kinerja baru, meningkatkan penghancuran objek, mengurangi konsumsi memori, dan mengurangi waktu persiapan untuk eksekusi WebAssembly;
  • Dukungan penuh untuk internasionalisasi dan Unicode berbasis perpustakaan diaktifkan secara default ICU (Komponen Internasional untuk Unicode), yang memungkinkan pengembang menulis kode pendukung bekerja dengan bahasa dan lokal yang berbeda. Modul full-icu sekarang diinstal secara default;
  • API stabil Utas Pekerja, mengizinkan membuat loop acara multi-utas. Implementasinya didasarkan pada modulworker_threads, yang memungkinkan Anda menjalankan kode JavaScript di beberapa thread paralel. Dukungan stabil untuk Workers Threads API juga telah di-backport ke cabang LTS Node.js 12.x;
  • Persyaratan untuk platform telah meningkat. Untuk berkumpul sekarang diperlukan setidaknya macOS 10.11 (memerlukan Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Peningkatan dukungan untuk Python 3. Jika sistem memiliki Python 2 dan Python 3, Python 2 masih digunakan, namun kemampuan untuk membangun ketika hanya Python 3 yang diinstal pada sistem telah ditambahkan;
  • Implementasi lama dari parser HTTP (β€œβ€”http-parser=legacy”) telah dihapus. Panggilan dan properti FSWatcher.prototype.start(), ChildProcess._channel, open() metode dalam objek ReadStream dan WriteStream, request.connection, respon.connection, module.createRequireFromPath();
  • Menindaklanjuti keluar perbarui 13.0.1, yang dengan cepat memperbaiki beberapa bug. Secara khusus, masalah dengan npm 6.12.0 yang menampilkan peringatan tentang penggunaan versi yang tidak didukung telah teratasi.

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, diperlukan upaya besar kumpulan modul, di mana Anda dapat menemukan modul dengan implementasi server dan klien HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, modul untuk integrasi dengan berbagai kerangka web, penangan WebSocket dan Ajax, konektor ke DBMS (MySQL, PostgreSQL, SQLite , MongoDB ), mesin templat, mesin CSS, implementasi algoritma kripto dan sistem otorisasi (OAuth), parser XML.

Untuk memastikan pemrosesan permintaan paralel dalam jumlah besar, 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 select. Perpustakaan digunakan untuk koneksi multiplexing libuv, yang merupakan suprastruktur atas gratis pada sistem Unix dan melalui IOCP pada Windows. Perpustakaan digunakan untuk membuat kumpulan thread libeio, untuk melakukan kueri DNS dalam mode non-pemblokiran terintegrasi kekuatiran. Semua panggilan sistem yang menyebabkan pemblokiran dieksekusi di dalam kumpulan thread dan kemudian, seperti penangan sinyal, mentransfer hasil pekerjaannya kembali melalui pipa (pipa) yang tidak disebutkan namanya. Eksekusi kode JavaScript disediakan melalui penggunaan mesin yang dikembangkan oleh Google V8 (Selain itu, Microsoft sedang mengembangkan varian Node.js dengan mesin Chakra-Core).

Pada intinya, Node.js mirip dengan framework. Perl Acara Apa Pun, Mesin Acara Ruby, Python Memutar ΠΈ penerapan peristiwa di Tcl, tetapi perulangan peristiwa di Node.js disembunyikan dari pengembang dan menyerupai penanganan peristiwa dalam aplikasi web yang berjalan di browser. Saat menulis aplikasi untuk node.js, Anda perlu mempertimbangkan spesifikasi pemrograman berbasis peristiwa, misalnya, daripada melakukan "var result = db.query("select..");" dengan menunggu penyelesaian pekerjaan dan pemrosesan hasil selanjutnya, Node.js menggunakan prinsip eksekusi asynchronous, yaitu. kode diubah menjadi "db.query("pilih..", fungsi (hasil) {hasil pemrosesan});", di mana kontrol akan langsung diteruskan ke kode selanjutnya, dan hasil kueri akan diproses saat data tiba. .

Sumber: opennet.ru

Tambah komentar