Node.js 16.0 విడుదల చేయబడింది, ఇది జావాస్క్రిప్ట్లో నెట్వర్క్ అప్లికేషన్లను అమలు చేయడానికి ఒక ప్లాట్ఫారమ్. Node.js 16.0 దీర్ఘకాలిక మద్దతు శాఖగా వర్గీకరించబడింది, అయితే ఈ స్థితి స్థిరీకరణ తర్వాత అక్టోబర్లో మాత్రమే కేటాయించబడుతుంది. Node.js 16.0కి ఏప్రిల్ 2023 వరకు మద్దతు ఉంటుంది. Node.js 14.0 యొక్క మునుపటి LTS బ్రాంచ్ నిర్వహణ ఏప్రిల్ 2023 వరకు మరియు చివరి LTS బ్రాంచ్ 12.0కి ముందు సంవత్సరం ఏప్రిల్ 2022 వరకు కొనసాగుతుంది. 10.0 LTS శాఖకు మద్దతు 10 రోజుల్లో నిలిపివేయబడుతుంది.
ప్రధాన మెరుగుదలలు:
- V8 ఇంజిన్ వెర్షన్ 9.0 (Node.js 15 ఉపయోగించిన విడుదల 8.6)కి నవీకరించబడింది, ఇది సాధారణ వ్యక్తీకరణల కోసం “సూచికలు” లక్షణం వంటి లక్షణాలను అమలు చేయడానికి అనుమతిస్తుంది (మ్యాచ్ల సమూహాల ప్రారంభ మరియు ముగింపు స్థానాలతో కూడిన శ్రేణిని కలిగి ఉంటుంది) , Node.js 16లోని అటామిక్స్ పద్ధతి .waitAsync (Atomics.wait యొక్క అసమకాలిక వెర్షన్), టాప్-లెవల్ మాడ్యూల్స్లో వెయిట్ కీవర్డ్ని ఉపయోగించడానికి మద్దతు. ఆమోదించబడిన ఆర్గ్యుమెంట్ల సంఖ్య ఫంక్షన్లో నిర్వచించిన పారామితులకు అనుగుణంగా లేని సందర్భాల్లో ఫంక్షన్ కాల్లు వేగవంతం చేయబడ్డాయి.
- టైమర్ల ప్రామిసెస్ API స్థిరీకరించబడింది, ప్రామిస్ ఆబ్జెక్ట్లను అవుట్పుట్గా తిరిగి ఇచ్చే టైమర్లతో పని చేయడానికి ప్రత్యామ్నాయ ఫంక్షన్లను అందిస్తుంది, ఇది util.promisify()ని ఉపయోగించాల్సిన అవసరాన్ని తొలగిస్తుంది. 'టైమర్స్/ప్రామిసెస్' నుండి {setTimeout }ని దిగుమతి చేయండి; async ఫంక్షన్ రన్() {వెయిట్ setTimeout(5000); console.log('హలో, వరల్డ్!'); } రన్();
- వెబ్ క్రిప్టో API యొక్క ప్రయోగాత్మక అమలు జోడించబడింది, క్రిప్టోగ్రాఫిక్ హ్యాష్లను మార్చడం, డిజిటల్ సంతకాలను రూపొందించడం మరియు ధృవీకరించడం, వివిధ ఎన్క్రిప్షన్ పద్ధతులను ఉపయోగించి డేటాను ఎన్కోడింగ్ మరియు డీకోడింగ్ చేయడం మరియు క్రిప్టోగ్రాఫిక్గా సురక్షితంగా రూపొందించడం వంటి వెబ్ అప్లికేషన్ల వైపు ప్రాథమిక క్రిప్టోగ్రాఫిక్ కార్యకలాపాలను నిర్వహించడానికి రూపొందించబడింది. యాదృచ్ఛిక సంఖ్యలు. API కీలను రూపొందించడం మరియు నిర్వహించడం కోసం విధులను కూడా అందిస్తుంది.
- N-API (యాడ్-ఆన్లను అభివృద్ధి చేయడానికి API) వెర్షన్ 8కి నవీకరించబడింది.
- ప్యాకేజీ మేనేజర్ NPM 7.10 యొక్క కొత్త విడుదలకు మార్పు చేయబడింది.
- AbortController క్లాస్ అమలును స్థిరీకరించింది, ఇది AbortController వెబ్ APIపై ఆధారపడి ఉంటుంది మరియు ఎంచుకున్న ప్రామిస్-ఆధారిత APIలలో సిగ్నల్లను రద్దు చేయడానికి అనుమతిస్తుంది.
- ఉత్పత్తి చేయబడిన, ప్రాసెస్ చేయబడిన లేదా ప్యాక్ చేయబడిన మాడ్యూల్లను అసలు సోర్స్ కోడ్తో పోల్చడానికి ఉపయోగించే సోర్స్ మ్యాప్ ఫార్మాట్ యొక్క మూడవ వెర్షన్కు మద్దతు స్థిరీకరించబడింది.
- లెగసీ వెబ్ APIలతో అనుకూలత కోసం, buffer.atob(data) మరియు buffer.btoa(data) పద్ధతులు జోడించబడ్డాయి.
- M1 ARM చిప్తో కూడిన కొత్త Apple పరికరాల కోసం అసెంబ్లీల ఏర్పాటు ప్రారంభమైంది.
- Linux ప్లాట్ఫారమ్లో, కంపైలర్ వెర్షన్ అవసరాలు GCC 8.3కి పెంచబడ్డాయి.
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..", ఫంక్షన్ (ఫలితం) {ఫలితం ప్రాసెసింగ్});"గా రూపాంతరం చెందుతుంది, దీనిలో నియంత్రణ తక్షణమే తదుపరి కోడ్కు వెళుతుంది మరియు డేటా వచ్చిన తర్వాత ప్రశ్న ఫలితం ప్రాసెస్ చేయబడుతుంది.
అదనంగా, తదుపరి తరం డెనో ప్లాట్ఫారమ్ను అభివృద్ధి చేయడానికి Node.js సృష్టికర్తచే స్థాపించబడిన డెనో కంపెనీ $4.9 మిలియన్ల పెట్టుబడులను పొందిందని గమనించవచ్చు. దాని ఉద్దేశ్యంలో, Deno Node.jsని పోలి ఉంటుంది, అయితే ఇది Node.js ఆర్కిటెక్చర్లో చేసిన సంభావిత లోపాలను తొలగించడానికి మరియు వినియోగదారులకు మరింత సురక్షితమైన వాతావరణాన్ని అందించడానికి ప్రయత్నిస్తుంది. డెనో యొక్క వ్యాపార పరిష్కారాలు పూర్తిగా ఓపెన్ ఉత్పత్తులపై నిర్మించబడతాయని మరియు ప్రత్యేక చెల్లింపు కార్యాచరణతో కూడిన ఓపెన్ కోర్ మోడల్ డెనో ప్లాట్ఫారమ్కు ఆమోదయోగ్యం కాదని గుర్తించబడింది.
మూలం: opennet.ru