ဆာဗာဘက်ခဌမ်သ JavaScript ပလပ်ဖောင်သ Node.js 21.0 ကို ရရဟိနိုင်ပါသည်။

Node.js 21.0 သည် JavaScript တလင် ကလန်ရက်အပလီကေသရဟင်သမျာသ လုပ်ဆောင်ရန်အတလက် ပလပ်ဖောင်သတစ်ခုဖဌစ်သည်။ Node.js 21.0 ဌာနခလဲကို 6 လကဌာ ပံ့ပိုသပေသပါမည်။ လာမည့်ရက်မျာသတလင်၊ Node.js 20 ဌာနခလဲ၏ တည်ငဌိမ်မဟုကို ပဌီသမဌောက်စေမည်ဖဌစ်ပဌီသ၊ ၎င်သသည် LTS အခဌေအနေကို ရရဟိမည်ဖဌစ်ပဌီသ ဧပဌီလ 2026 အထိ ပံ့ပိုသပေသမည်ဖဌစ်သည်။ Node.js 18.0 ၏ ယခင် LTS ဌာနခလဲကို ပဌုပဌင်ထိန်သသိမ်သမဟုသည် စက်တင်ဘာ 2025 အထိ ကဌာမဌင့်မည်ဖဌစ်ပဌီသ နောက်ဆုံသ LTS ဌာနခလဲ 16.0 မတိုင်မီ 2024 ခုနဟစ် ဧပဌီလ XNUMX ခုနဟစ်အထိ ဖဌစ်သည်။

အဓိက တိုသတက်မဟုမျာသ-

  • Fetch API ကို ကလန်ရက်ပေါ်တလင် အရင်သအမဌစ်မျာသတင်ရန်နဟင့် server နဟင့် client ဘက်မျာသတလင် အလုပ်လုပ်ရန် သင့်လျော်သော universal JavaScript ကုဒ်ရေသသာသမဟုကို ရိုသရဟင်သစေရန်အတလက် ဒီဇိုင်သထုတ်ထာသပဌီသ တည်ငဌိမ်ကဌောင်သ ကဌေညာထာသသည်။ အကောင်အထည်ဖော်မဟုသည် HTTP/1.1 undici client မဟကုဒ်ပေါ်တလင် အခဌေခံထာသပဌီသ ဘရောက်ဆာမျာသတလင် ပေသထာသသည့် အလာသတူ API နဟင့် အနီသစပ်ဆုံသဖဌစ်သည်။ API တလင် fetch() method နဟင့် Headers objects မျာသ ပါဝင်သည်။ HTTP ခေါင်သစီသမျာသ၊ တောင်သဆိုချက်နဟင့် တုံ့ပဌန်မဟုကို ကိုယ်စာသပဌုသော တောင်သဆိုမဟုနဟင့် တုံ့ပဌန်မဟု။ const res = wait fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = စောင့်နေသည် res.json(); console.log(ဒေတာ); }
  • ကလန်ရက်မဟရရဟိသော ဒေတာစီသကဌောင်သမျာသကို ဝင်ရောက်ကဌည့်ရဟုခလင့်ပေသသည့် WebStreams API အတလက် ပံ့ပိုသမဟုမဟာ တည်ငဌိမ်သလာသပါပဌီ။ ဖိုင်တစ်ခုလုံသကို ဒေါင်သလုဒ်လုပ်ရန် မစောင့်ဆိုင်သဘဲ ကလန်ရက်ပေါ်မဟ အချက်အလက်မျာသ ရောက်ရဟိလာသည်နဟင့်အမျဟ ဒေတာနဟင့် အလုပ်လုပ်သော သင့်ကိုယ်ပိုင် ကိုင်တလယ်ဖဌေရဟင်သသူမျာသကို API က ထည့်သလင်သနိုင်စေပါသည်။ Node.js တလင် ရရဟိနိုင်သော အရာဝတ္ထုမျာသသည် ReadableStream*၊ TransformStream*၊ WritableStream*၊ TextEncoderStream၊ TextDecoderStream၊ CompressionStream နဟင့် DecompressionStream တို့ ပါဝင်သည်။
  • ဘရောက်ဆာမျာသနဟင့် တလဲဖက်အသုံသပဌုနိုင်သော WebSocket ကလိုင်သယင့်၏ စမ်သသပ်အကောင်အထည်ဖော်မဟုကို ထည့်သလင်သထာသသည်။ WebSocket ပံ့ပိုသမဟုကို ဖလင့်ရန်၊ "--experimental-websocket" အလံကို ပေသထာသသည်။
  • CommonJS (သီသသန့် Node.js) အစာသ JavaScript မော်ဂျူသမျာသ ESM (ECMAScript Modules၊ အသုံသပဌုသည့် ဘရောက်ဆာမျာသအတလက် မော်ဂျူသမျာသ) ကို အသုံသပဌုရန်အတလက် စမ်သသပ်မုဒ်တစ်ခု ထပ်ထည့်ခဲ့သည်။ ပဌောင်သလဲမဟုသည် package.json တလင် "--input-type" အလံမဟတစ်ဆင့် သတ်မဟတ်ထာသသော "အမျိုသအစာသ" အကလက်မဟတစ်ဆင့် ဖော်မတ်သတ်မဟတ်ထာသသည့် မော်ဂျူသမျာသအပေါ် သက်ရောက်မဟုမရဟိပါ၊ သို့မဟုတ် ဖိုင်တိုသချဲ့မဟု (ESM အတလက် .mjs၊ .cjs အတလက် .mjs၊ CommonJS အတလက်)။ သို့သော်၊ CommonJS အဖဌစ် ပဌတ်သာသစလာ မသတ်မဟတ်ထာသသော မော်ဂျူသမျာသ (ဥပမာ၊ “.js” တိုသချဲ့မဟု ရဟိသည်) မုဒ်အသစ်ကို ဖလင့်ထာသသောအခါတလင် ESM မော်ဂျူသမျာသအဖဌစ် သဘောထာသလိမ့်မည်။ မော်ဂျူသဆက်တင်အသစ်မျာသကို အသက်သလင်သရန်အတလက် "--experimental-default-type" အလံကို အဆိုပဌုထာသသည်။
  • V8 အင်ဂျင်ကို Chromium 11.8 တလင်အသုံသပဌုထာသပဌီသ၊ ယခု ArrayBuffer.prototype.transfer နည်သလမ်သ၊ အုပ်စုဖလဲ့နိုင်မဟု (groupBy method) နဟင့် WebAssembly ကိန်သသေမျာသကို လုပ်ဆောင်ရန်အတလက် ညလဟန်ကဌာသချက်မျာသ (i118.add၊ i32.sub၊ i32.mul၊ i32 .add၊ i64.sub နဟင့် i64.mul)။
  • globalPreload handler အတလက် ပံ့ပိုသမဟုကို ရပ်ဆိုင်သလိုက်သည်၊ modules မျာသကို configure လုပ်ရန်အတလက် မဟတ်ပုံတင်ပဌီသ ခေါ်ဆိုမဟုမျာသကို ကနညသစတင်လုပ်ဆောင်ခဌင်သဖဌင့် ရပ်ဆိုင်သလိုက်ပါသည်။
  • ရေသမဟုတစ်ခုစီတိုင်သပဌီသနောက် data မျာသကို drive သို့ flush ဖဌစ်အောင်တလန်သအာသပေသရန်အတလက် "flush" option ကို fs.writeFile လုပ်ဆောင်ချက်တလင် ထည့်သလင်သထာသပါသည်။
  • URL ခလဲခဌမ်သစိတ်ဖဌာခဌင်သ၊ ရယူခဌင်သ API၊ စီသကဌောင်သမျာသ၊ node:fs နဟင့် HTTP တို့နဟင့်ဆက်စပ်သော ကုဒ်မျာသ၏စလမ်သဆောင်ရည်ကို မဌဟင့်တင်ထာသသည်။
  • ကမ္ဘာလုံသဆိုင်ရာ လမ်သညလဟန်မဟုအရာဝတ္ထုကို ထည့်သလင်သထာသသည်။ ဥပမာအာသဖဌင့်၊ CPU cores အရေအတလက်နဟင့်ပတ်သက်သည့် ဒေတာကိုရယူရန်၊ သင်သည် navigator.hardwareConcurrency ပိုင်ဆိုင်မဟုကို အသုံသပဌုနိုင်သည်။
  • “—test” ကန့်သတ်ဘောင်တလင်၊ လုပ်ဆောင်ရန် စမ်သသပ်မဟုမျာသကို ရလေသချယ်ရန်အတလက် glob မျက်နဟာဖုံသမျာသအတလက် ပံ့ပိုသမဟုကို ထည့်သလင်သထာသသည် (ဥပမာ၊ သင်သည် “—test **/*.test.js” ဟု သတ်မဟတ်နိုင်ပါသည်။)
  • ထုပ်ပိုသထာသသော အထုပ်မန်နေဂျာ npm 10.2.0 နဟင့် llhttp 9.1.2 parser ကို အပ်ဒိတ်လုပ်ပဌီသပါပဌီ။
  • Visual Studio 2019 အတလက် ပံ့ပိုသမဟုနဟင့် 11.0 ထက်ဟောင်သသော macOS ဗာသရဟင်သမျာသကို ရပ်ဆိုင်သလိုက်ပါပဌီ။

Node.js ပလပ်ဖောင်သကို ဝဘ်အက်ပလီကေသရဟင်သမျာသ၏ ဆာဗာထိန်သသိမ်သခဌင်သအတလက်နဟင့် ပုံမဟန်အသုံသပဌုသူနဟင့် ဆာဗာကလန်ရက်ပရိုဂရမ်မျာသကို ဖန်တီသရန်အတလက် နဟစ်မျိုသလုံသအသုံသပဌုနိုင်ပါသည်။ Node.js အတလက် အပလီကေသရဟင်သမျာသ၏ လုပ်ဆောင်နိုင်စလမ်သကို ချဲ့ထလင်ရန်အတလက် HTTP၊ SMTP၊ XMPP၊ DNS၊ FTP၊ IMAP၊ POP3 ဆာဗာမျာသနဟင့် ကလိုင်သယင့်မျာသ၊ ပေါင်သစပ်မဟုမျာသအတလက် မော်ဂျူသမျာသကို သင်ရဟာဖလေနိုင်သည့် မော်ဂျူသအမျာသအပဌာသကို ပဌင်ဆင်ထာသပါသည်။ အမျိုသမျိုသသော ဝဘ်ဘောင်မျာသ၊ WebSocket နဟင့် Ajax ကိုင်တလယ်သူမျာသ၊ DBMS ချိတ်ဆက်မဟုမျာသ (MySQL၊ PostgreSQL၊ SQLite၊ MongoDB)၊ နမူနာပုံစံအင်ဂျင်မျာသ၊ CSS အင်ဂျင်မျာသ၊ crypto အယ်လဂိုရီသမ်မျာသနဟင့် ခလင့်ပဌုချက်စနစ်မျာသ (OAuth)၊ XML ခလဲခဌမ်သစိတ်ဖဌာမဟုမျာသ။

အပဌိုင်တောင်သဆိုမဟုမျာသ အမျာသအပဌာသကို လုပ်ဆောင်ခဌင်သအာသ သေချာစေရန်၊ Node.js သည် ပိတ်ဆို့ခဌင်သမဟုတ်သော ဖဌစ်ရပ်ကိုင်တလယ်ခဌင်သနဟင့် ပဌန်ခေါ်ခဌင်သဆိုင်ရာ အဓိပ္ပါယ်ဖလင့်ဆိုချက်မျာသကို အခဌေခံ၍ Node.js ကို အသုံသပဌုပါသည်။ multiplexing ချိတ်ဆက်မဟုမျာသအတလက် ပံ့ပိုသပေသထာသသော နည်သလမ်သမျာသမဟာ epoll၊ kqueue၊ /dev/poll နဟင့် ရလေသချယ်ပါ။ ချိတ်ဆက်မဟု multiplexing အတလက်၊ Windows ရဟိ Unix စနစ်မျာသနဟင့် IOCP အတလက် libev အတလက် add-on တစ်ခုဖဌစ်သည့် libuv စာကဌည့်တိုက်ကို အသုံသပဌုပါသည်။ libeio စာကဌည့်တိုက်ကို thread pool တစ်ခုဖန်တီသရန်အသုံသပဌုထာသပဌီသ၊ ပိတ်ဆို့ခဌင်သမဟုတ်သောမုဒ်တလင် DNS မေသမဌန်သမဟုမျာသကို လုပ်ဆောင်ရန်အတလက် c-ares ကို ပေါင်သစပ်ထာသသည်။ ပိတ်ဆို့ခဌင်သကို ဖဌစ်စေသော စနစ်ခေါ်ဆိုမဟုအာသလုံသကို thread pool အတလင်သတလင် လုပ်ဆောင်ပဌီသ၊ ထို့နောက် signal handlers မျာသကဲ့သို့ ၎င်သတို့၏ အလုပ်ရလဒ်ကို အမည်မဖော်လိုသော ပိုက် (pipe) မဟတဆင့် ပဌန်လည်လလဟဲပဌောင်သပေသပါသည်။ JavaScript ကုဒ်ကို အကောင်အထည်ဖော်ခဌင်သအာသ Google မဟ ဖန်တီသထာသသော V8 အင်ဂျင်ကို အသုံသပဌုခဌင်သဖဌင့် ပံ့ပိုသပေသသည် (ထို့ပဌင် Microsoft သည် Chakra-Core အင်ဂျင်ဖဌင့် Node.js ဗာသရဟင်သကို ဖန်တီသနေသည်)။

၎င်သ၏အဓိကအချက်မဟာ Node.js သည် Perl AnyEvent၊ Ruby Event Machine၊ Python Twisted frameworks နဟင့် Tcl event implementation တို့နဟင့် ဆင်တူသော်လည်သ Node.js ရဟိ event loop ကို developer မဟ ဝဟက်ထာသပဌီသ လည်ပတ်နေသည့် ဝဘ်အက်ပလီကေသရဟင်သတလင် ဖဌစ်ရပ်ကိုင်တလယ်ပုံနဟင့် ဆင်တူသည်။ browser တလင်။ node.js အတလက် အပလီကေသရဟင်သမျာသ ရေသသာသသည့်အခါ၊ သင်သည် "var result = db.query("select..");" အစာသ event-driven programming ၏ တိကျသောအချက်မျာသကို ထည့်သလင်သစဉ်သစာသရန် လိုအပ်ပါသည်။ အလုပ်ပဌီသစီသမဟုနဟင့် ရလဒ်မျာသ၏ နောက်ဆက်တလဲလုပ်ဆောင်မဟုမျာသကို စောင့်ဆိုင်သခဌင်သဖဌင့် Node.js သည် ချိန်ညဟိလုပ်ဆောင်ခဌင်သ၏နိယာမကို အသုံသပဌုသည်။ ကုဒ်ကို "db.query("select.."၊ function (result) {result processing});" သို့ ပဌောင်သလဲသလာသသည်၊ ၎င်သတလင် ထိန်သချုပ်မဟုသည် နောက်ထပ်ကုဒ်သို့ ချက်ချင်သရောက်သလာသမည်ဖဌစ်ပဌီသ၊ ဒေတာရောက်ရဟိသည်နဟင့် မေသမဌန်သချက်ရလဒ်ကို စီမံဆောင်ရလက်မည်ဖဌစ်သည်။

source: opennet.ru

မဟတ်ချက် Add