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

JavaScript တလင် ကလန်ရက်အက်ပလီကေသရဟင်သမျာသကို လုပ်ဆောင်ရန်အတလက် ပလပ်ဖောင်သတစ်ခုဖဌစ်သည့် Node.js 20.0 ကို ထုတ်ဝေလိုက်ပါသည်။ Node.js 20.0 ကို ရဟည်လျာသသော ပံ့ပိုသကူညီမဟုဌာနခလဲတလင် တာဝန်ပေသအပ်ထာသသော်လည်သ တည်ငဌိမ်ပဌီသနောက် အောက်တိုဘာလအထိ ကအခဌေအနေကို သတ်မဟတ်ပေသမည်မဟုတ်ပါ။ Node.js 20.x ကို 30 ခုနဟစ် ဧပဌီလ 2026 ရက်နေ့အထိ ပံ့ပိုသပေသပါမည်။ ယခင် Node.js 18.x LTS ဌာနခလဲကို ပဌုပဌင်ထိန်သသိမ်သမဟုသည် ဧပဌီလ 2025 အထိဖဌစ်ပဌီသ ယခင် 16.x LTS ဌာနခလဲသည် စက်တင်ဘာ 2023 အထိ ကဌာမဌင့်မည်ဖဌစ်သည်။ 14.x LTS ဌာနခလဲကို ဧပဌီလ 30 ရက်နေ့တလင် ထိန်သသိမ်သထာသမည်ဖဌစ်ပဌီသ Node.js 19.x ကဌာသဖဌတ်ဌာနခလဲကို ဇလန်လ 1 ရက်နေ့တလင် ထာသရဟိမည်ဖဌစ်သည်။

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

  • V8 အင်ဂျင်ကို Chromium 11.3 တလင်အသုံသပဌုသည့် ဗာသရဟင်သ 113 သို့ အပ်ဒိတ်လုပ်ထာသပါသည်။ Chromium 19 အင်ဂျင်ကို အသုံသပဌုထာသသည့် Node.js 107 ဌာနခလဲနဟင့် နဟိုင်သယဟဉ်ထာသသော အပဌောင်သအလဲမျာသ၊ String.prototype.isWellFormed နဟင့် toWellFormed လုပ်ဆောင်ချက်မျာသ၊ Array.prototype နဟင့် TypedArray.prototype နည်သလမ်သမျာသသည် Array နဟင့် TypedArray အရာဝတ္ထုမျာသ၏ ပဌောင်သလဲမဟုတလင် မိတ္တူဖဌင့်အလုပ်လုပ်ရန်၊ RegExp ရဟိ "v" အလံ၊ ArrayBuffer ကိုအရလယ်အစာသပဌောင်သလဲခဌင်သနဟင့် SharedArrayBuffer ၏အရလယ်အစာသကိုတိုသမဌဟင့်ခဌင်သ၊ WebAssembly တလင် အမဌီသခေါ်ဆိုမဟုဖဌင့်လုပ်ဆောင်ရန်။
  • လုပ်ဆောင်နေစဉ်အတလင်သ အချို့သော အရင်သအမဌစ်မျာသသို့ ဝင်ရောက်ခလင့်ကို ကန့်သတ်ရန် သင့်အာသ ခလင့်ပဌုသည့် စမ်သသပ်ခလင့်ပဌုချက်ပုံစံ ယန္တရာသတစ်ခုကို အဆိုပဌုထာသသည်။ လုပ်ဆောင်နေချိန်တလင် "--စမ်သသပ်မဟု-ခလင့်ပဌုချက်" အလံကို သတ်မဟတ်ခဌင်သဖဌင့် ခလင့်ပဌုချက်ပုံစံပံ့ပိုသမဟုကို ဖလင့်ထာသသည်။ ကနဩှ အကောင်အထည်ဖော်မဟုတလင်၊ FS ၏ အချို့သောအစိတ်အပိုင်သမျာသသို့ စာရေသခဌင်သ (--allow-fs-write) နဟင့် (--allow-fs-read) ဝင်ရောက်ခလင့်ကို ကန့်သတ်ရန် ရလေသချယ်မဟုမျာသကို အဆိုပဌုခဲ့သည်။ ၊ add-ons (--no-addons) နဟင့် threads (--allow-worker)။ ဥပမာအာသဖဌင့်၊ /tmp directory သို့ စာရေသခဌင်သနဟင့် /home/index.js ဖိုင်ကိုဖတ်ရဟုခဌင်သအာသ ခလင့်ပဌုရန်၊ သင်သတ်မဟတ်နိုင်သည်- node --experimental-permission --allow-fs-write=/tmp/ --allow-fs-read =/home/index.js အညလဟန်သ .js

    ဝင်ရောက်ကဌည့်ရဟုစစ်ဆေသရန်၊ process.permission.has() နည်သလမ်သ၊ ဥပမာ၊ "process.permission.has('fs.write',"/tmp/test") ကို အသုံသပဌုရန် အကဌံပဌုအပ်ပါသည်။

  • "--experimental-loader" ရလေသချယ်မဟုမဟတစ်ဆင့် တင်ထာသသော ECMAScript ပဌင်ပ modules (ESMs) အတလက် ကိုင်တလယ်သူမျာသကို ယခုအချိန်တလင် ပင်မကဌိုသမဟ သီသခဌာသခလဲထုတ်ထာသပဌီသ၊ အက်ပလီကေသရဟင်သကုဒ်မျာသနဟင့် တင်ထာသသော ESM မော်ဂျူသမျာသကို ဖယ်ရဟာသပေသပါသည်။ ဘရောက်ဆာမျာသကဲ့သို့ပင်၊ import.meta.resolve() နည်သလမ်သသည် ယခုအခါ အပလီကေသရဟင်သတစ်ခုအတလင်သမဟ ခေါ်သောအခါ တစ်ပဌိုင်နက်လုပ်ဆောင်ပါသည်။ Node.js ၏နောက်ထပ်အခလဲတစ်ခုတလင်၊ ESM loading ပံ့ပိုသမဟုအာသ တည်ငဌိမ်သောအင်္ဂါရပ်မျာသအမျိုသအစာသသို့ ရလဟေ့ရန် စီစဉ်ထာသသည်။
  • TAP (Test Anything Protocol) ဖော်မတ်တလင် ရလဒ်မျာသ ပဌန်ပေသသည့် JavaScript စမ်သသပ်မဟုမျာသကို ဖန်တီသပဌီသ လုပ်ဆောင်ရန် ဒီဇိုင်သထုတ်ထာသသည့် ကုဒ်-test (test_runner) မော်ဂျူသကို တည်ငဌိမ်သည့်အဖဌစ်သို့ ရလဟေ့ထာသသည်။
  • ဌာနခလဲအသစ်အတလက် ပဌင်ဆင်မဟုအနေဖဌင့် URL ခလဲခဌမ်သစိတ်ဖဌာခဌင်သ၊ fetch() နဟင့် EventTarget အပါအဝင် အမျိုသမျိုသသော runtime အစိတ်အပိုင်သမျာသကို အရဟိန်မဌဟင့်ရန်အတလက် သီသခဌာသစလမ်သဆောင်ရည်အဖလဲ့တစ်ခုကို ဖလဲ့စည်သထာသပါသည်။ ဥပမာအာသဖဌင့်၊ EventTarget ကို အစပဌုခဌင်သ၏ အပေါ်စီသက ထက်ဝက်ကို လျဟော့ချလိုက်သည်၊ URL.canParse() နည်သလမ်သ၏ စလမ်သဆောင်ရည်ကို သိသာထင်ရဟာသစလာ မဌဟင့်တင်ထာသပဌီသ အချိန်တိုင်သမာမျာသ၏ စလမ်သဆောင်ရည်ကို မဌဟင့်တင်ထာသသည်။ ထို့အပဌင်၊ C++ ဖဌင့်ရေသသာသထာသသော စလမ်သဆောင်ရည်မဌင့် URL parser - Ada 2.0 ကို ထုတ်ဝေမဟုတလင် ပါဝင်ပါသည်။
  • တစ်ခုတည်သသော executable file (SEA၊ Single Executable Applications) ပုံစံဖဌင့် အပလီကေသရဟင်သမျာသ ပေသပို့ခဌင်သအတလက် စမ်သသပ်မဟုအင်္ဂါရပ်ကို ဆက်လက်ဖော်ဆောင်နေပါသည်။ ယခု executable ကိုဖန်တီသခဌင်သသည် JSON configuration file ( JavaScript ဖိုင်ကိုအစာသထိုသမည့်အစာသ) မဟထုတ်ပေသသော blob ကိုအစာသထိုသရန်လိုအပ်သည်။
  • အခဌာသပရောဂျက်မျာသမဟ အကောင်အထည်ဖော်မဟုမျာသနဟင့် Web Crypto API လိုက်ဖက်မဟုကို မဌဟင့်တင်ထာသသည်။
  • ARM64 စနစ်မျာသတလင် Windows အတလက်တရာသဝင်ပံ့ပိုသမဟုထပ်လောင်သ။
  • သီသခဌာသ WebAssembly အပလီကေသရဟင်သမျာသဖန်တီသရန်အတလက် WASI (WebAssembly System Interface) တိုသချဲ့မဟုမျာသကို ဆက်လက်ပံ့ပိုသပေသသည်။ WASI ပံ့ပိုသမဟုကိုဖလင့်ရန် အထူသအမိန့်တော်လိုင်သအလံသတ်မဟတ်ရန် လိုအပ်မဟုကို ဖယ်ရဟာသခဲ့သည်။

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