Server-sisi JavaScript Node.js 17.0 release

Node.js 17.0, platform pikeun ngajalankeun aplikasi jaringan dina JavaScript, dirilis. Node.js 17.0 mangrupikeun cabang dukungan biasa anu bakal teras nampi apdet dugi ka Juni 2022. Dina dinten anu bakal datang, stabilisasi cabang Node.js 16 bakal réngsé, anu bakal nampi status LTS sareng bakal didukung dugi ka April 2024. Pangropéa cabang LTS sateuacana tina Node.js 14.0 bakal dugi ka April 2023, sareng sataun sateuacan cabang LTS terakhir 12.0 dugi ka April 2022.

Perbaikan utama:

  • Mesin V8 parantos diropéa kana versi 9.5.
  • Palaksanaan varian tina API dasar dumasar kana pamakéan panganteur komputasi Asynchronous Jangji geus dituluykeun. Salian ti Timers Janji jeung Streams Janji API saméméhna ditawarkeun, Node.js 17.0 ngenalkeun API Jangji Readline pikeun maca data baris ku garis ngagunakeun modul readline. impor * salaku readline tina 'titik: readline / janji'; impor {stdin salaku input, stdout salaku kaluaran} tina 'prosés'; const rl = readline.createInterface({input, kaluaran}); jawaban const = await rl.question('Naon saur anjeun Node.js?'); console.log ('Hatur nuhun pikeun eupan balik berharga anjeun: ${jawaban}'); rl.deukeut ();
  • Perpustakaan OpenSSL anu disayogikeun parantos diropéa kana versi 3.0 (garpu quictls/openssl kalayan dukungan protokol QUIC diaktipkeun dianggo).
  • Aktipkeun versi Node.js pikeun dipintonkeun dina ngambah tumpukan anu kaluaran bisi kasalahan fatal anu ngabalukarkeun aplikasi pikeun nungtungan.

Salaku tambahan, urang tiasa nyebatkeun ngaleungitkeun dua kerentanan dina cabang Node.js ayeuna (CVE-2021-22959, CVE-2021-22960), anu ngamungkinkeun pikeun ngalaksanakeun serangan "HTTP Request Smuggling" (HRS). ngidinan urang ngaganjel kana eusi requests pamaké séjén 'diolah dina thread sarua antara frontend jeung backend (contona, kode JavaScript jahat bisa diselapkeun kana sési pamaké séjén). Rincian bakal diungkabkeun engké, tapi pikeun ayeuna urang ngan ukur terang yén masalahna disababkeun ku pananganan rohangan anu salah antara nami lulugu HTTP sareng titik, ogé penanganan anu béda-béda pikeun balik deui sareng karakter feed garis dina blok parameter anu dianggo nalika ngirimkeun. awak pamundut di bagian dina mode "chunked" "

Hayu urang émut yén platform Node.js tiasa dianggo pikeun pangrojong sisi-server pikeun aplikasi wéb sareng pikeun nyiptakeun program jaringan klien sareng server biasa. Pikeun dilegakeun pungsionalitas aplikasi pikeun Node.js, kumpulan modul anu ageung parantos disiapkeun, dimana anjeun tiasa mendakan modul kalayan palaksanaan HTTP, SMTP, XMPP, DNS, FTP, IMAP, server POP3 sareng klien, modul pikeun integrasi. kalawan rupa web frameworks, WebSocket na AJAX pawang , panyambungna ka DBMS (MySQL, PostgreSQL, SQLite, MongoDB), mesin template, mesin CSS, palaksanaan algoritma cryptographic sarta sistem otorisasina (OAuth), XML parsers.

Pikeun mastikeun ngolah sajumlah ageung pamundut paralel, Node.js nganggo modél palaksanaan kode Asynchronous dumasar kana penanganan acara non-blocking sareng definisi panangan callback. Métode anu dirojong pikeun sambungan multiplexing nyaéta epoll, kqueue, / dev / poll, sareng pilih. Pikeun sambungan multiplexing, perpustakaan libuv dipaké, nu mangrupa tambihan-on pikeun libev on sistem Unix sarta IOCP on Windows. Perpustakaan libeio dipaké pikeun nyieun kolam renang thread, sarta c-ares ieu terpadu pikeun ngalakukeun queries DNS dina modeu non-blocking. Sadaya panggero sistem anu nyababkeun blocking dieksekusi di jero kolam renang teras, sapertos panangan sinyal, nransferkeun hasil padamelanna deui ngaliwatan pipa anu henteu namina (pipa). Eksekusi kode JavaScript disayogikeun ku ngagunakeun mesin V8 anu dikembangkeun ku Google (sajaba ti éta, Microsoft ngembangkeun versi Node.js sareng mesin Chakra-Core).

Intina, Node.js sami sareng Perl AnyEvent, Mesin Acara Ruby, kerangka Python Twisted, sareng palaksanaan acara Tcl, tapi loop acara di Node.js disumputkeun tina pamekar sareng nyarupaan penanganan acara dina aplikasi wéb anu ngajalankeun. dina browser. Nalika nulis aplikasi pikeun node.js, Anjeun kudu mertimbangkeun spésifik program acara-disetir, contona, tinimbang ngalakukeun "var hasil = db.query ("pilih ..");" kalayan ngantosan parantosan padamelan sareng ngolah hasil salajengna, Node.js nganggo prinsip palaksanaan asinkron, nyaéta. kode ieu ngajanggélék jadi "db.query ("pilih ..", fungsi (hasil) {prosés hasil});", nu kontrol bakal langsung ngalirkeun kana kode salajengna, sarta hasil query bakal diolah sakumaha data datang.

sumber: opennet.ru

Tambahkeun komentar