సర్వర్ వైపు JavaScript Node.js 17.0 విడుదల

Node.js 17.0, జావాస్క్రిప్ట్‌లో నెట్‌వర్క్ అప్లికేషన్‌లను అమలు చేయడానికి ప్లాట్‌ఫారమ్ విడుదల చేయబడింది. Node.js 17.0 అనేది ఒక సాధారణ మద్దతు శాఖ, ఇది జూన్ 2022 వరకు అప్‌డేట్‌లను అందుకోవడం కొనసాగుతుంది. రాబోయే రోజుల్లో, Node.js 16 బ్రాంచ్ యొక్క స్థిరీకరణ పూర్తవుతుంది, ఇది LTS స్థితిని పొందుతుంది మరియు ఏప్రిల్ 2024 వరకు మద్దతు ఇవ్వబడుతుంది. Node.js 14.0 యొక్క మునుపటి LTS బ్రాంచ్ నిర్వహణ ఏప్రిల్ 2023 వరకు మరియు చివరి LTS బ్రాంచ్ 12.0కి ముందు సంవత్సరం ఏప్రిల్ 2022 వరకు కొనసాగుతుంది.

ప్రధాన మెరుగుదలలు:

  • V8 ఇంజిన్ వెర్షన్ 9.5కి అప్‌డేట్ చేయబడింది.
  • ప్రామిస్ అసమకాలిక కంప్యూటింగ్ ఇంటర్‌ఫేస్ ఉపయోగం ఆధారంగా ప్రాథమిక API యొక్క వేరియంట్‌ల అమలు కొనసాగింది. మునుపు అందించిన టైమర్‌లు ప్రామిసెస్ మరియు స్ట్రీమ్స్ ప్రామిసెస్ APIలతో పాటు, రీడ్‌లైన్ మాడ్యూల్‌ని ఉపయోగించి డేటా లైన్ వారీగా చదవడం కోసం Node.js 17.0 రీడ్‌లైన్ ప్రామిస్ APIని పరిచయం చేసింది. 'node:readline/promises' నుండి రీడ్‌లైన్‌గా * దిగుమతి చేయండి; 'ప్రాసెస్' నుండి {stdin ఇన్‌పుట్‌గా, stdoutని అవుట్‌పుట్‌గా దిగుమతి చేయండి; const rl = readline.createInterface({ఇన్‌పుట్, అవుట్‌పుట్}); const answer = వేచి ఉండండి rl.question('Node.js గురించి మీరు ఏమనుకుంటున్నారు?'); console.log('మీ విలువైన అభిప్రాయానికి ధన్యవాదాలు: ${సమాధానం}'); rl.close();
  • సరఫరా చేయబడిన OpenSSL లైబ్రరీ వెర్షన్ 3.0కి నవీకరించబడింది (QUIC ప్రోటోకాల్ సపోర్ట్ ఎనేబుల్ చేయబడిన quictls/openssl ఫోర్క్ ఉపయోగించబడుతుంది).
  • అప్లికేషన్‌ను ముగించడానికి కారణమయ్యే ప్రమాదకరమైన ఎర్రర్‌ల విషయంలో అవుట్‌పుట్ అయ్యే స్టాక్ ట్రేస్‌లలో ప్రదర్శించబడేలా Node.js వెర్షన్ ప్రారంభించబడింది.

అదనంగా, మేము ప్రస్తుత Node.js బ్రాంచ్‌లలో (CVE-2021-22959, CVE-2021-22960) రెండు దుర్బలత్వాల తొలగింపును పేర్కొనవచ్చు, ఇది "HTTP అభ్యర్థన స్మగ్లింగ్" (HRS) దాడులను నిర్వహించడం సాధ్యం చేస్తుంది, ఇది అనుమతిస్తుంది ఫ్రంటెండ్ మరియు బ్యాకెండ్ మధ్య ఒకే థ్రెడ్‌లో ప్రాసెస్ చేయబడిన ఇతర వినియోగదారుల అభ్యర్థనల కంటెంట్‌లను మేము గుర్తించాము (ఉదాహరణకు, హానికరమైన జావాస్క్రిప్ట్ కోడ్‌ను మరొక వినియోగదారు సెషన్‌లో చేర్చవచ్చు). వివరాలు తర్వాత వెల్లడి చేయబడతాయి, అయితే HTTP హెడర్ పేరు మరియు పెద్దప్రేగు మధ్య ఖాళీలను తప్పుగా నిర్వహించడం, అలాగే క్యారేజ్ రిటర్న్ మరియు లైన్ ఫీడ్ క్యారెక్టర్‌లను ప్రసారం చేసేటప్పుడు ఉపయోగించే పారామీటర్ బ్లాక్‌లో విభిన్నంగా నిర్వహించడం వల్ల సమస్యలు తలెత్తుతున్నాయని మాత్రమే మాకు తెలుసు. "చంక్డ్" మోడ్‌లో భాగాలలో అభ్యర్థన శరీరం "

Node.js ప్లాట్‌ఫారమ్ వెబ్ అప్లికేషన్‌ల సర్వర్ నిర్వహణకు మరియు సాధారణ క్లయింట్ మరియు సర్వర్ నెట్‌వర్క్ ప్రోగ్రామ్‌లను రూపొందించడానికి రెండింటినీ ఉపయోగించవచ్చని గుర్తుంచుకోండి. Node.js కోసం అప్లికేషన్‌ల కార్యాచరణను విస్తరించడానికి, మాడ్యూల్స్ యొక్క పెద్ద సేకరణ సిద్ధం చేయబడింది, దీనిలో మీరు HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 సర్వర్లు మరియు క్లయింట్లు, ఇంటిగ్రేషన్ కోసం మాడ్యూల్స్ అమలుతో మాడ్యూల్‌లను కనుగొనవచ్చు. వివిధ వెబ్ ఫ్రేమ్‌వర్క్‌లు, వెబ్‌సాకెట్ మరియు అజాక్స్ హ్యాండ్లర్లు, DBMS కనెక్టర్‌లు (MySQL, PostgreSQL, SQLite, MongoDB), టెంప్లేటింగ్ ఇంజిన్‌లు, CSS ఇంజన్‌లు, క్రిప్టో అల్గారిథమ్‌లు మరియు ఆథరైజేషన్ సిస్టమ్స్ (OAuth), XML పార్సర్‌లు.

పెద్ద సంఖ్యలో సమాంతర అభ్యర్థనల ప్రాసెసింగ్‌ను నిర్ధారించడానికి, Node.js నాన్-బ్లాకింగ్ ఈవెంట్ హ్యాండ్లింగ్ మరియు కాల్‌బ్యాక్ హ్యాండ్లర్ల నిర్వచనం ఆధారంగా అసమకాలిక కోడ్ అమలు నమూనాను ఉపయోగిస్తుంది. మల్టీప్లెక్సింగ్ కనెక్షన్‌ల కోసం మద్దతు ఉన్న పద్ధతులు epoll, kqueue, /dev/poll, మరియు సెలెక్ట్. కనెక్షన్ మల్టీప్లెక్సింగ్ కోసం, libuv లైబ్రరీ ఉపయోగించబడుతుంది, ఇది Unix సిస్టమ్‌లలో libev మరియు Windowsలో IOCP కోసం యాడ్-ఆన్. libeio లైబ్రరీ థ్రెడ్ పూల్‌ని సృష్టించడానికి ఉపయోగించబడుతుంది మరియు నాన్-బ్లాకింగ్ మోడ్‌లో DNS ప్రశ్నలను నిర్వహించడానికి c-ares ఏకీకృతం చేయబడింది. నిరోధించడానికి కారణమయ్యే అన్ని సిస్టమ్ కాల్‌లు థ్రెడ్ పూల్ లోపల అమలు చేయబడతాయి మరియు సిగ్నల్ హ్యాండ్లర్ల వలె, పేరులేని పైపు (పైపు) ద్వారా వారి పని ఫలితాన్ని తిరిగి బదిలీ చేస్తాయి. జావాస్క్రిప్ట్ కోడ్ అమలు Google ద్వారా అభివృద్ధి చేయబడిన V8 ఇంజిన్‌ను ఉపయోగించడం ద్వారా అందించబడుతుంది (అదనంగా, మైక్రోసాఫ్ట్ చక్ర-కోర్ ఇంజిన్‌తో Node.js సంస్కరణను అభివృద్ధి చేస్తోంది).

దాని ప్రధాన భాగంలో, Node.js అనేది Perl AnyEvent, రూబీ ఈవెంట్ మెషిన్, పైథాన్ ట్విస్టెడ్ ఫ్రేమ్‌వర్క్‌లు మరియు Tcl ఈవెంట్ ఇంప్లిమెంటేషన్‌ను పోలి ఉంటుంది, అయితే Node.jsలోని ఈవెంట్ లూప్ డెవలపర్ నుండి దాచబడింది మరియు నడుస్తున్న వెబ్ అప్లికేషన్‌లో ఈవెంట్ హ్యాండ్లింగ్‌ను పోలి ఉంటుంది. బ్రౌజర్‌లో. node.js కోసం అప్లికేషన్‌లను వ్రాస్తున్నప్పుడు, మీరు ఈవెంట్-ఆధారిత ప్రోగ్రామింగ్ యొక్క ప్రత్యేకతలను పరిగణించాలి, ఉదాహరణకు, "var result = db.query("select..");" పనిని పూర్తి చేయడం మరియు ఫలితాల తదుపరి ప్రాసెసింగ్ కోసం వేచి ఉండటంతో, Node.js అసమకాలిక అమలు సూత్రాన్ని ఉపయోగిస్తుంది, అనగా. కోడ్ "db.query("select..", ఫంక్షన్ (ఫలితం) {ఫలితం ప్రాసెసింగ్});"గా రూపాంతరం చెందుతుంది, దీనిలో నియంత్రణ తక్షణమే తదుపరి కోడ్‌కు వెళుతుంది మరియు డేటా వచ్చిన తర్వాత ప్రశ్న ఫలితం ప్రాసెస్ చేయబడుతుంది.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి