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

Node.js 18.0 విడుదల చేయబడింది, ఇది జావాస్క్రిప్ట్‌లో నెట్‌వర్క్ అప్లికేషన్‌లను అమలు చేయడానికి ఒక ప్లాట్‌ఫారమ్. Node.js 18.0 దీర్ఘకాలిక మద్దతు శాఖగా వర్గీకరించబడింది, అయితే ఈ స్థితి స్థిరీకరణ తర్వాత అక్టోబర్‌లో మాత్రమే కేటాయించబడుతుంది. Node.js 18.xకి ఏప్రిల్ 2025 వరకు మద్దతు ఉంటుంది. Node.js 16.x యొక్క మునుపటి LTS బ్రాంచ్ నిర్వహణ ఏప్రిల్ 2024 వరకు ఉంటుంది మరియు చివరి LTS బ్రాంచ్ 14.xకి ముందు సంవత్సరం ఏప్రిల్ 2023 వరకు ఉంటుంది. 12.x LTS శాఖ ఏప్రిల్ 30న నిలిపివేయబడుతుంది మరియు Node.js 17.x స్టేజింగ్ బ్రాంచ్ జూన్ 1న నిలిపివేయబడుతుంది.

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

  • V8 ఇంజిన్ వెర్షన్ 10.1కి అప్‌డేట్ చేయబడింది, ఇది Chromium 101లో ఉపయోగించబడుతుంది. Node.js యొక్క 17.9.0 విడుదలతో పోలిస్తే, ముగింపుకు సంబంధించి ఎలిమెంట్‌లను కనుగొనడానికి findLast మరియు findLastIndex పద్ధతుల వంటి లక్షణాలకు ఇప్పుడు మద్దతు ఉంది. ఒక శ్రేణి, మరియు Intl.supportedValuesOf ఫంక్షన్. మెరుగైన Intl.Locale API. క్లాస్ ఫీల్డ్‌లు మరియు ప్రైవేట్ పద్ధతుల ప్రారంభీకరణ వేగవంతం చేయబడింది.
  • ప్రయోగాత్మక పొందడం() API డిఫాల్ట్‌గా ప్రారంభించబడింది, నెట్‌వర్క్‌లో వనరులను లోడ్ చేయడం కోసం రూపొందించబడింది. అమలు అనేది HTTP/1.1 undici క్లయింట్ నుండి కోడ్ ఆధారంగా మరియు బ్రౌజర్‌లలో అందించబడిన సారూప్య APIకి వీలైనంత దగ్గరగా ఉంటుంది. ఇది HTTP అభ్యర్థన మరియు ప్రతిస్పందన శీర్షికలను మార్చడానికి FormData, శీర్షికలు, అభ్యర్థన మరియు ప్రతిస్పందన ఇంటర్‌ఫేస్‌లకు మద్దతును కలిగి ఉంటుంది. const res = పొందడం కోసం వేచి ఉండండి('https://nodejs.org/api/documentation.json'); ఉంటే (res.ok) {const డేటా = res.json () కోసం వేచి ఉండండి; console.log(డేటా); }
  • వెబ్ స్ట్రీమ్‌ల API యొక్క ప్రయోగాత్మక అమలు జోడించబడింది, నెట్‌వర్క్ ద్వారా స్వీకరించబడిన డేటా స్ట్రీమ్‌లకు ప్రాప్యతను అందిస్తుంది. మొత్తం ఫైల్ డౌన్‌లోడ్ అయ్యే వరకు వేచి ఉండకుండా, నెట్‌వర్క్ ద్వారా సమాచారం వచ్చినప్పుడు డేటాతో పని చేయడానికి మీ స్వంత హ్యాండ్లర్‌లను జోడించడాన్ని API సాధ్యం చేస్తుంది. Node.jsలో ఇప్పుడు అందుబాటులో ఉన్న వస్తువులలో ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream మరియు DecompressionStream ఉన్నాయి.
  • Blob API స్థిరంగా మార్చబడింది, వివిధ వర్కర్ థ్రెడ్‌లలో సురక్షితమైన ఉపయోగం కోసం మార్పులేని ముడి డేటాను సంగ్రహించడానికి మిమ్మల్ని అనుమతిస్తుంది.
  • BroadcastChannel API స్థిరంగా మార్చబడింది, ఇది "ఒక పంపినవారు - చాలా మంది గ్రహీతలు" ఆకృతిలో అసమకాలిక మోడ్‌లో సందేశాల మార్పిడిని నిర్వహించడానికి మిమ్మల్ని అనుమతిస్తుంది.
  • ప్రయోగాత్మక మాడ్యూల్ నోడ్ జోడించబడింది: TAP (టెస్ట్ ఏదైనా ప్రోటోకాల్) ఆకృతిలో ఫలితాలను అందించే JavaScriptలో పరీక్షలను సృష్టించడం మరియు అమలు చేయడం కోసం పరీక్ష.
  • Red Hat Enterprise Linux (RHEL) 8 మరియు డెబియన్ 2.28 మరియు ఉబుంటు 10తో సహా Glibc 20.04+ ఆధారిత ఇతర పంపిణీల కోసం, అలాగే macOS 10.15+ కోసం రెడీమేడ్ అసెంబ్లీల తరం అందించబడింది. V8 ఇంజిన్ బిల్డ్‌తో సమస్యల కారణంగా, Windows కోసం 32-బిట్ బిల్డ్‌ల సృష్టి తాత్కాలికంగా నిలిపివేయబడింది.
  • ప్రారంభంలో ప్రారంభించబడిన వినియోగదారు-ఎంచుకున్న భాగాలతో Node.js ఎక్జిక్యూటబుల్‌ను రూపొందించడానికి ప్రయోగాత్మక ఎంపికను అందించింది. ప్రారంభ భాగాలను నిర్వచించడానికి, కాన్ఫిగర్ బిల్డ్ స్క్రిప్ట్‌కు “--node-snapshot-main” ఎంపిక జోడించబడింది, ఉదాహరణకు, “./configure —node-snapshot-main=marked.js; పేరు నోడ్"

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

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