Keluaran JavaScript Node.js 13.0 bahagian pelayan

Ada melepaskan Node.js 13.0,platform untuk menjalankan aplikasi rangkaian dalam JavaScript. Pada masa yang sama, penstabilan cawangan sebelumnya Node.js 12.x telah selesai, yang telah dipindahkan ke kategori keluaran sokongan jangka panjang, kemas kini yang dikeluarkan selama 4 tahun. Sokongan untuk cawangan LTS Node.js 10.0 sebelumnya akan berlangsung sehingga April 2021, dan sokongan untuk cawangan LTS terakhir 8.0 hingga Januari 2020.

Utama penambahbaikan:

  • Enjin V8 dikemas kini kepada versi 7.8, yang menggunakan teknik pengoptimuman prestasi baharu, menambah baik pemusnahan objek, mengurangkan penggunaan memori dan mengurangkan masa penyediaan untuk pelaksanaan WebAssembly;
  • Sokongan penuh untuk pengantarabangsaan dan Unicode berasaskan perpustakaan didayakan secara lalai ICU (Komponen Antarabangsa untuk Unicode), yang membolehkan pembangun menulis kod menyokong bekerja dengan bahasa dan tempat yang berbeza. Modul full-icu kini dipasang secara lalai;
  • API stabil Benang Pekerja, membenarkan buat gelung acara berbilang benang. Pelaksanaannya adalah berdasarkan modul worker_threads, yang membolehkan anda menjalankan kod JavaScript dalam berbilang urutan selari. Sokongan stabil untuk Workers Threads API juga telah disandarkan ke cawangan LTS Node.js 12.x;
  • Keperluan untuk platform telah ditingkatkan. Untuk perhimpunan sekarang diperlukan sekurang-kurangnya macOS 10.11 (memerlukan Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Sokongan yang lebih baik untuk Python 3. Jika sistem mempunyai Python 2 dan Python 3, Python 2 masih digunakan, tetapi keupayaan untuk membina apabila hanya Python 3 dipasang pada sistem telah ditambahkan;
  • Pelaksanaan lama penghurai HTTP (β€œβ€”http-parser=legacy”) telah dialih keluar. Panggilan dan sifat yang dialih keluar atau ditamatkan FSWatcher.prototype.start(), ChildProcess._channel, open() dalam objek ReadStream dan WriteStream, request.connection, response.connection, module.createRequireFromPath();
  • Mengikuti muncul kemas kini 13.0.1, yang membetulkan beberapa pepijat dengan cepat. Khususnya, masalah dengan npm 6.12.0 yang memaparkan amaran tentang menggunakan versi yang tidak disokong telah diselesaikan.

Mari kita ingat bahawa platform Node.js boleh digunakan untuk sokongan sisi pelayan bagi aplikasi Web dan untuk mencipta program rangkaian pelanggan dan pelayan biasa. Untuk mengembangkan kefungsian aplikasi untuk Node.js, sejumlah besar koleksi modul, di mana anda boleh menemui modul dengan pelaksanaan pelayan dan pelanggan HTTP, SMTP, XMPP, DNS, FTP, IMAP, 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 mengendalikan sejumlah besar permintaan selari, Node.js menggunakan model pelaksanaan kod tak segerak berdasarkan pemprosesan acara tidak menyekat dan mentakrifkan pengendali panggil balik. Kaedah yang disokong untuk pemultipleksan sambungan termasuk epoll, kqueue, /dev/poll, dan pilih. Perpustakaan digunakan untuk sambungan multipleks libuv, yang merupakan superstruktur atas libev pada sistem Unix dan lebih IOCP pada Windows. Pustaka digunakan untuk membuat kumpulan benang libeio, untuk melaksanakan pertanyaan DNS dalam mod tidak menyekat disepadukan c-ares. Semua panggilan sistem yang menyebabkan penyekatan dilaksanakan dalam kumpulan benang dan kemudian, seperti pengendali isyarat, menghantar hasil kerja mereka kembali melalui paip yang tidak dinamakan. Pelaksanaan kod JavaScript dipastikan melalui penggunaan enjin yang dibangunkan oleh Google V8 (Selain itu, Microsoft sedang membangunkan versi Node.js dengan enjin Chakra-Core).

Pada terasnya, Node.js adalah serupa dengan rangka kerja Perl AnyEvent, Mesin Acara Ruby, Python Dipintal ΠΈ pelaksanaan peristiwa dalam Tcl, tetapi gelung peristiwa dalam Node.js disembunyikan daripada pembangun dan menyerupai pengendalian acara dalam aplikasi web yang dijalankan dalam penyemak imbas. Apabila menulis aplikasi untuk node.js, adalah perlu untuk mengambil kira spesifik pengaturcaraan dipacu peristiwa, sebagai contoh, dan bukannya melakukan "var result = db.query("select..");" dengan menunggu penyiapan kerja dan pemprosesan keputusan 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