Sakin JavaScript na gefen uwar garken Node.js 17.0

Node.js 17.0, dandamali don gudanar da aikace-aikacen cibiyar sadarwa a cikin JavaScript, an sake shi. Node.js 17.0 reshe ne na tallafi na yau da kullun wanda zai ci gaba da karɓar sabuntawa har zuwa Yuni 2022. A cikin kwanaki masu zuwa, za a kammala tabbatar da reshen Node.js 16, wanda zai karɓi matsayin LTS kuma za a tallafa masa har zuwa Afrilu 2024. Kula da reshen LTS na baya na Node.js 14.0 zai šauki har zuwa Afrilu 2023, da kuma shekarar da ta gabata reshen LTS 12.0 har zuwa Afrilu 2022.

Babban haɓakawa:

  • An sabunta injin V8 zuwa sigar 9.5.
  • An ci gaba da aiwatar da bambance-bambancen API na asali dangane da amfani da keɓancewar kwamfuta asynchronous. Baya ga Alƙawuran Ƙididdiga da aka bayar a baya da kuma Rarraba Alƙawura APIs, Node.js 17.0 yana gabatar da API ɗin Alƙawarin Karatu don karanta layin bayanai ta layi ta amfani da tsarin karantawa. shigo da * azaman layin karantawa daga 'kumburi: layin karantawa'; shigo da {stdin azaman shigarwa, stdout azaman fitarwa} daga 'tsari'; const rl = readline.createInterface ({shigarwar, fitarwa}); amsa amsa = jira rl.tambaya ('Me kuke tunani akan Node.js?'); console.log('Na gode da mahimman ra'ayinku: ${amsa}'); rl.rufe();
  • An sabunta ɗakin karatu na OpenSSL da aka kawo zuwa nau'in 3.0 (ana amfani da cokali mai yatsa/buɗewa tare da tallafin ƙa'idar QUIC).
  • An kunna sigar Node.js don nunawa a cikin tari da aka fitar idan akwai kurakurai masu mutuwa waɗanda ke sa aikace-aikacen ya ƙare.

Bugu da ƙari, za mu iya ambaci kawar da lahani guda biyu a cikin rassan Node.js na yanzu (CVE-2021-22959, CVE-2021-22960), wanda ya ba da damar aiwatar da hare-haren "HTTP Request Smuggling" (HRS), wanda ba mu damar shiga cikin abubuwan buƙatun masu amfani waɗanda aka sarrafa a cikin zaren iri ɗaya tsakanin gaba da baya (misali, ana iya shigar da lambar JavaScript mara kyau a cikin wani zaman mai amfani). Za a bayyana dalla-dalla daga baya, amma a yanzu mun san cewa matsalolin suna faruwa ne ta hanyar rashin kula da sarari tsakanin sunan taken HTTP da hanji, da kuma yadda ake tafiyar da ma'amala daban-daban na dawo da karusar da haruffan ciyarwar layi a cikin shingen da ake amfani da shi lokacin watsawa. Jikin buƙatar a cikin sassan a cikin yanayin "chunked"

Bari mu tuna cewa ana iya amfani da dandalin Node.js duka don goyon bayan gefen uwar garke na aikace-aikacen yanar gizo da kuma ƙirƙirar shirye-shiryen abokin ciniki na yau da kullun da uwar garken. Don fadada ayyukan aikace-aikacen don Node.js, an shirya babban tarin kayayyaki, wanda za ku iya samun kayayyaki tare da aiwatar da HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 sabobin da abokan ciniki, kayayyaki don haɗin kai. tare da tsarin yanar gizo daban-daban, WebSocket da Ajax handlers , masu haɗawa zuwa DBMS (MySQL, PostgreSQL, SQLite, MongoDB), injunan samfuri, injunan CSS, aiwatar da algorithms na cryptographic da tsarin izini (OAuth), XML parsers.

Don tabbatar da sarrafa ɗimbin buƙatun layi ɗaya, Node.js yana amfani da samfurin aiwatar da lambar asynchronous dangane da abubuwan da ba a toshewa ba da ma'anar masu kula da kira. Hanyoyin da aka goyan baya don haɗa haɗin kai sune epoll, kqueue, /dev/poll, kuma zaɓi. Don haɗawa da yawa, ana amfani da ɗakin karatu na libuv, wanda shine ƙari don libev akan tsarin Unix da IOCP akan Windows. Ana amfani da ɗakin karatu na libeio don ƙirƙirar tafkin zaren, kuma an haɗa c-ares don yin tambayoyin DNS a yanayin da ba tare da toshewa ba. Ana aiwatar da duk kiran tsarin da ke haifar da toshewa a cikin tafkin zaren sannan, kamar masu sarrafa sigina, canja wurin sakamakon aikinsu ta hanyar bututu (bututu) da ba a bayyana sunansa ba. Ana ba da aiwatar da lambar JavaScript ta hanyar amfani da injin V8 wanda Google ya haɓaka (Bugu da ƙari, Microsoft yana haɓaka sigar Node.js tare da injin Chakra-Core).

A ainihin sa, Node.js yayi kama da Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks, da kuma aiwatar da taron Tcl, amma madaidaicin taron a Node.js yana ɓoye daga mai haɓakawa kuma yayi kama da gudanar da taron a cikin aikace-aikacen yanar gizon da ke gudana. a cikin browser. Lokacin rubuta aikace-aikacen node.js, kuna buƙatar yin la'akari da ƙayyadaddun shirye-shiryen da ke gudana, alal misali, maimakon yin "var sakamako = db.query("zaɓa ..");" tare da jiran kammala aikin da aiwatar da sakamako na gaba, Node.js yana amfani da ka'idar asynchronous kisa, watau. An canza lambar zuwa "db.query ("zaɓi..", aiki (sakamakon) {sakamakon sarrafawa});, wanda sarrafawa zai wuce nan take zuwa ƙarin lambar, kuma za a sarrafa sakamakon tambaya yayin da bayanai suka isa.

source: budenet.ru

Add a comment