సర్వర్ వైపు JavaScript ప్లాట్‌ఫారమ్ Node.js 21.0 అందుబాటులో ఉంది

Node.js 21.0 విడుదల చేయబడింది, ఇది జావాస్క్రిప్ట్‌లో నెట్‌వర్క్ అప్లికేషన్‌లను అమలు చేయడానికి ఒక ప్లాట్‌ఫారమ్. Node.js 21.0 బ్రాంచ్‌కి 6 నెలల పాటు సపోర్ట్ ఉంటుంది. రాబోయే రోజుల్లో, Node.js 20 బ్రాంచ్ యొక్క స్థిరీకరణ పూర్తవుతుంది, ఇది LTS స్థితిని పొందుతుంది మరియు ఏప్రిల్ 2026 వరకు మద్దతు ఇవ్వబడుతుంది. Node.js 18.0 యొక్క మునుపటి LTS బ్రాంచ్ యొక్క నిర్వహణ సెప్టెంబర్ 2025 వరకు మరియు చివరి LTS బ్రాంచ్ 16.0కి ముందు సంవత్సరం ఏప్రిల్ 2024 వరకు కొనసాగుతుంది.

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

  • Fetch API స్థిరంగా ప్రకటించబడింది, నెట్‌వర్క్‌లో వనరులను లోడ్ చేయడానికి మరియు సర్వర్ మరియు క్లయింట్ వైపులా పని చేయడానికి అనువైన యూనివర్సల్ JavaScript కోడ్‌ను సరళీకృతం చేయడానికి రూపొందించబడింది. అమలు అనేది HTTP/1.1 undici క్లయింట్ నుండి కోడ్ ఆధారంగా మరియు బ్రౌజర్‌లలో అందించబడిన సారూప్య APIకి వీలైనంత దగ్గరగా ఉంటుంది. APIలో పొందడం() పద్ధతి మరియు హెడర్స్ ఆబ్జెక్ట్‌లు ఉంటాయి. అభ్యర్థన మరియు ప్రతిస్పందన, HTTP హెడర్‌లు, అభ్యర్థన మరియు ప్రతిస్పందనను సూచిస్తుంది. const res = పొందడం కోసం వేచి ఉండండి('https://nodejs.org/api/documentation.json'); ఉంటే (res.ok) {const డేటా = res.json () కోసం వేచి ఉండండి; console.log(డేటా); }
  • నెట్‌వర్క్ ద్వారా స్వీకరించబడిన డేటా స్ట్రీమ్‌లకు యాక్సెస్‌ను అందించే WebStreams API కోసం మద్దతు స్థిరీకరించబడింది. మొత్తం ఫైల్ డౌన్‌లోడ్ అయ్యే వరకు వేచి ఉండకుండా, నెట్‌వర్క్ ద్వారా సమాచారం వచ్చినప్పుడు డేటాతో పని చేసే మీ స్వంత హ్యాండ్లర్‌లను జోడించడాన్ని API సాధ్యం చేస్తుంది. Node.jsలో అందుబాటులో ఉన్న వస్తువులలో రీడబుల్ స్ట్రీమ్*, ట్రాన్స్‌ఫార్మ్ స్ట్రీమ్*, రైటబుల్ స్ట్రీమ్*, టెక్స్ట్ ఎన్‌కోడర్ స్ట్రీమ్, టెక్స్ట్ డీకోడర్ స్ట్రీమ్, కంప్రెషన్ స్ట్రీమ్ మరియు డీకంప్రెషన్ స్ట్రీమ్ ఉన్నాయి.
  • బ్రౌజర్‌లకు అనుకూలమైన WebSocket క్లయింట్ యొక్క ప్రయోగాత్మక అమలు జోడించబడింది. WebSocket మద్దతును ప్రారంభించడానికి, “--ప్రయోగాత్మక-websocket” ఫ్లాగ్ అందించబడింది.
  • CommonJS (Node.jsకి ప్రత్యేకం) బదులుగా JavaScript మాడ్యూల్స్ ESM (ECMAScript మాడ్యూల్స్, బ్రౌజర్‌ల కోసం మాడ్యూల్స్‌లో ఉపయోగించబడుతుంది) డిఫాల్ట్ అమలును ఉపయోగించడం కోసం ప్రయోగాత్మక మోడ్ జోడించబడింది. "--ఇన్‌పుట్-టైప్" ఫ్లాగ్ ద్వారా పేర్కొనబడిన, ప్యాకేజీ.jsonలోని "టైప్" ఫీల్డ్ ద్వారా స్పష్టంగా నిర్వచించబడిన మాడ్యూల్‌లను మార్పు ప్రభావితం చేయదు లేదా ఫైల్ పొడిగింపు (.mjs కోసం ESM, .cjs) కారణంగా స్పష్టంగా ఉంటుంది CommonJS కోసం). అయితే, CommonJSగా స్పష్టంగా నిర్వచించబడని మాడ్యూల్స్ (ఉదాహరణకు, “.js” పొడిగింపుని కలిగి ఉంటాయి) కొత్త మోడ్ ప్రారంభించబడినప్పుడు ESM మాడ్యూల్‌లుగా పరిగణించబడతాయి. కొత్త మాడ్యూల్ సెట్టింగ్‌లను సక్రియం చేయడానికి, “--ప్రయోగాత్మక-డిఫాల్ట్-టైప్” ఫ్లాగ్ ప్రతిపాదించబడింది.
  • V8 ఇంజిన్ వెర్షన్ 11.8కి నవీకరించబడింది, ఇది Chromium 118లో ఉపయోగించబడింది, ఇది ఇప్పుడు ArrayBuffer.prototype.transfer పద్ధతికి, సమూహ శ్రేణుల సామర్థ్యం (groupBy పద్ధతి) మరియు ప్రాసెసింగ్ స్థిరాంకాల కోసం WebAssembly సూచనలకు మద్దతు ఇస్తుంది (i32.add, i32.sub, i32.mul, i64 .add, i64.sub మరియు i64.mul).
  • మాడ్యూల్‌లను కాన్ఫిగర్ చేయడానికి కాల్‌లను నమోదు చేయడానికి మరియు ప్రారంభించేందుకు అనుకూలంగా గ్లోబల్ ప్రీలోడ్ హ్యాండ్లర్‌కు మద్దతు నిలిపివేయబడింది.
  • ప్రతి రైట్ ఆపరేషన్ తర్వాత డ్రైవ్‌కు డేటాను ఫ్లష్ చేయమని బలవంతం చేయడానికి fs.writeFile ఫంక్షన్‌కు “ఫ్లష్” ఎంపిక జోడించబడింది.
  • URL పార్సింగ్, పొందడం API, స్ట్రీమ్‌లు, నోడ్:fs మరియు HTTPకి సంబంధించిన కోడ్ పనితీరు మెరుగుపరచబడింది.
  • గ్లోబల్ నావిగేటర్ ఆబ్జెక్ట్ జోడించబడింది. ఉదాహరణకు, CPU కోర్ల సంఖ్య గురించి డేటాను పొందడానికి, మీరు navigator.hardwareConcurrency ఆస్తిని ఉపయోగించవచ్చు.
  • “—test” పరామితిలో, అమలు చేయడానికి పరీక్షలను ఎంచుకోవడానికి గ్లోబ్ మాస్క్‌లకు మద్దతు జోడించబడింది (ఉదాహరణకు, మీరు “—test **/*.test.js.” అని పేర్కొనవచ్చు).
  • బండిల్ చేయబడిన ప్యాకేజీ మేనేజర్ npm 10.2.0 మరియు llhttp 9.1.2 పార్సర్ నవీకరించబడ్డాయి.
  • విజువల్ స్టూడియో 2019 మరియు 11.0 కంటే పాత మాకోస్ వెర్షన్‌లకు మద్దతు నిలిపివేయబడింది.

Node.js ప్లాట్‌ఫారమ్ వెబ్ అప్లికేషన్‌ల సర్వర్ వైపు మద్దతు కోసం మరియు సాధారణ క్లయింట్ మరియు సర్వర్ నెట్‌వర్క్ ప్రోగ్రామ్‌లను సృష్టించడం కోసం రెండింటినీ ఉపయోగించవచ్చు. Node.js కోసం అప్లికేషన్‌ల కార్యాచరణను విస్తరించడానికి, మాడ్యూళ్ల యొక్క పెద్ద సేకరణ సిద్ధం చేయబడింది, దీనిలో మీరు HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 సర్వర్‌లు మరియు క్లయింట్లు, ఇంటిగ్రేషన్ కోసం మాడ్యూల్‌ల అమలుతో మాడ్యూళ్లను కనుగొనవచ్చు. వివిధ వెబ్ ఫ్రేమ్‌వర్క్‌లు, WebSocket మరియు అజాక్స్ హ్యాండ్లర్లు, 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

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