ဆာဗာဘက်ခြမ်း JavaScript ပလပ်ဖောင်း Node.js 19.0 ကို ရရှိနိုင်ပါသည်။

Node.js 19.0၊ JavaScript တွင် ကွန်ရက်အပလီကေးရှင်းများ လည်ပတ်ရန်အတွက် ပလပ်ဖောင်းတစ်ခု ထုတ်ဝေခဲ့သည်။ Node.js 19 သည် 2023 ဇွန်လအထိ အပ်ဒိတ်များ ရရှိနိုင်သော ပုံမှန်ပံ့ပိုးကူညီမှုဌာနခွဲတစ်ခုဖြစ်သည်။ လာမည့်ရက်များတွင်၊ Node.js 18 ဌာနခွဲ၏ တည်ငြိမ်မှုကို ပြီးစီးမည်ဖြစ်ပြီး၊ ၎င်းသည် LTS အခြေအနေကို ရရှိမည်ဖြစ်ပြီး ဧပြီလ 2025 အထိ ပံ့ပိုးပေးမည်ဖြစ်သည်။ Node.js 16.0 ၏ ယခင် LTS ဌာနခွဲကို ပြုပြင်ထိန်းသိမ်းမှုသည် စက်တင်ဘာ 2023 အထိ ကြာမြင့်မည်ဖြစ်ပြီး နောက်ဆုံး LTS ဌာနခွဲ 14.0 မတိုင်မီတစ်နှစ်သည် ဧပြီလ 2023 ခုနှစ်အထိ ဖြစ်သည်။

အဓိက တိုးတက်မှုများ-

  • V8 အင်ဂျင်ကို Chromium 10.7 တွင်အသုံးပြုသည့် ဗားရှင်း 107 သို့ အပ်ဒိတ်လုပ်ထားသည်။ Node.js 18 ဌာနခွဲနှင့် နှိုင်းယှဉ်ပါက အင်ဂျင်အပြောင်းအလဲများထဲတွင် Intl.NumberFormat API ၏ တတိယဗားရှင်းကို အကောင်အထည်ဖော်မှုကို မှတ်သားထားပြီး လုပ်ဆောင်ချက်အသစ်များ ဖော်မတ်Range ကို ပေါင်းထည့်သည်။ (), formatRangeToParts() နှင့် selectRange(), sets များကို အုပ်စုဖွဲ့ခြင်း၊ အဝိုင်းခြင်းနှင့် သတ်မှတ်ခြင်းအတွက် ရွေးချယ်စရာအသစ်များ၊ လိုင်းများကို ဒဿမဂဏန်းများအဖြစ် အဓိပ္ပာယ်ပြန်ဆိုနိုင်မှု။ ပါဝင်သော မှီခိုမှုများ llhttp 8.1.0 နှင့် npm 8.19.2 ကိုလည်း အပ်ဒိတ်လုပ်ထားပါသည်။
  • တင်သွင်းထားသောဖိုင်ကို ပြောင်းလဲသည့်အခါ လုပ်ငန်းစဉ်ကို ပြန်လည်စတင်ကြောင်း သေချာစေသည့် နာရီမုဒ်ကို အကောင်အထည်ဖော်ခြင်းဖြင့် စမ်းသပ် "node -watch" ညွှန်ကြားချက်ကို အဆိုပြုခဲ့သည် (ဥပမာ၊ "node -watch index.js" ကို လုပ်ဆောင်ပါက၊ လုပ်ငန်းစဉ်ဖြစ်လိမ့်မည် index.js ပြောင်းလဲသည့်အခါ အလိုအလျောက် ပြန်လည်စတင်သည်)။
  • အထွက် HTTP/HTTPS ချိတ်ဆက်မှုအားလုံးအတွက်၊ HTTP 1.1 Keep-Alive ယန္တရားအတွက် ပံ့ပိုးမှုကို ဖွင့်ထားပြီး တူညီသောချိတ်ဆက်မှုအတွင်း HTTP တောင်းဆိုချက်များစွာကို လုပ်ဆောင်ရန်အတွက် ချိတ်ဆက်မှုကို အချိန်အတိုင်းအတာတစ်ခုအထိ ဖွင့်ထားမည်ဖြစ်သည်။ Keep-Alive သည် စွမ်းရည်နှင့် စွမ်းဆောင်ရည်ကို မြှင့်တင်ရန် မျှော်လင့်ပါသည်။ ပုံမှန်အားဖြင့်၊ ချိတ်ဆက်မှုဖွင့်ချိန်ကို 5 စက္ကန့်သတ်မှတ်ထားသည်။ ဆာဗာတုံ့ပြန်မှုများတွင် Keep-Alive HTTP ခေါင်းစီးကို ခွဲခြမ်းစိတ်ဖြာရန် ပံ့ပိုးမှုကို HTTP ကလိုင်းယင့် အကောင်အထည်ဖော်မှုတွင် ထည့်သွင်းထားပြီး Keep-Alive ကို အသုံးပြု၍ မလှုပ်ရှားသော သုံးစွဲသူများ၏ အလိုအလျောက်ချိတ်ဆက်မှုကို Node.js HTTP ဆာဗာ အကောင်အထည်ဖော်မှုတွင် ထည့်သွင်းထားသည်။
  • WebCrypto API အား Ed25519၊ Ed448၊ X25519 နှင့် X448 အယ်လဂိုရီသမ်များကို အသုံးပြုသည့် လုပ်ဆောင်ချက်များမှလွဲ၍ ကျန်ရှိသော တည်ငြိမ်သောအမျိုးအစားသို့ လွှဲပြောင်းထားပါသည်။ WebCrypto module ကိုဝင်ရောက်ရန် ယခု globalThis.crypto သို့မဟုတ် လိုအပ်သည်('node:crypto').webcrypto ကို အသုံးပြုနိုင်ပါသည်။
  • DTrace၊ SystemTap နှင့် ETW (Windows အတွက် Event Tracing) ခြေရာခံကိရိယာများအတွက် ပံ့ပိုးမှုအား ဖယ်ရှားလိုက်သည်၊ သင့်လျော်သော ပံ့ပိုးမှုအစီအစဉ်မရှိသဖြင့် ၎င်းကို ခေတ်မီအောင်ထိန်းသိမ်းထားရန် ရှုပ်ထွေးမှုကြောင့် မသင့်လျော်ဟု ယူဆထားသည့် ထိန်းသိမ်းမှုကို ဖယ်ရှားလိုက်ပါသည်။

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