Server-side JavaScript Node.js 14.0 ထုတ်ဝေမှု

နေရာယူခဲ့သည်။ လွှတ်ပေး Node.js ၄.၀JavaScript တွင် ကွန်ရက်အပလီကေးရှင်းများ လည်ပတ်ရန်အတွက် ပလပ်ဖောင်းများ။ Node.js 14.0 သည် ရေရှည်ပံ့ပိုးမှုဌာနခွဲတစ်ခုဖြစ်သော်လည်း၊ ဤအခြေအနေကို တည်ငြိမ်အောင်ပြုလုပ်ပြီးနောက် အောက်တိုဘာလတွင်သာ သတ်မှတ်ပေးမည်ဖြစ်သည်။ Node.js 14.0 ကို ပံ့ပိုးပေးပါမည်။ ဆောင်ရွက်ရမည်။ ဧပြီလ 2023 အထိ။ Node.js 12.0 ၏ ယခင် LTS ဌာနခွဲကို ပြုပြင်ထိန်းသိမ်းမှုသည် ဧပြီလ 2022 အထိ ကြာမြင့်မည်ဖြစ်ပြီး နောက်ဆုံး LTS ဌာနခွဲ 10.0 မတိုင်မီ တစ်နှစ်မှ ဧပြီလ 2021 ခုနှစ်အထိ ဖြစ်သည်။ 13.x staging ဌာနခွဲအတွက် ပံ့ပိုးမှုသည် ယခုနှစ် ဇွန်လတွင် ကုန်ဆုံးမည်ဖြစ်သည်။

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

  • ပျံသန်းနေစဉ် သို့မဟုတ် အချို့သောဖြစ်ရပ်များ ပေါ်ပေါက်လာသောအခါတွင် ထုတ်လုပ်နိုင်စွမ်းသည် တည်ငြိမ်သွားပါသည်။ ရောဂါရှာဖွေရေးအစီရင်ခံစာများပျက်စီးမှုများ၊ စွမ်းဆောင်ရည်ကျဆင်းမှု၊ မှတ်ဉာဏ်ယိုစိမ့်မှု၊ လေးလံသော CPU ဝန်ထုပ်ဝန်ပိုး၊ မမျှော်လင့်ထားသော အမှားအယွင်းအထွက်စသည်တို့ကဲ့သို့သော ပြဿနာများကို အဖြေရှာရာတွင် ကူညီပေးသည့် ဖြစ်ရပ်များကို ပြသပေးသည့်
  • စမ်းသပ် API ပံ့ပိုးမှု ထပ်ထည့်ထားသည်။ စက်တွင်းသိုလှောင်မှုကို ပေါင်းစပ်ပါ။ ပြန်လည်ခေါ်ဆိုမှုများနှင့် ကတိများပေါ်မူတည်၍ ကိုင်တွယ်ဖြေရှင်းသူများနှင့် အညီအမျှပြုလုပ်ရန် AsyncLocalStorage အတန်းကို အကောင်အထည်ဖော်ခြင်းဖြင့်၊ AsyncLocalStorage သည် သင့်အား ဝဘ်တောင်းဆိုမှုတစ်ခု လုပ်ဆောင်နေချိန်တွင် ဒေတာကို သိမ်းဆည်းနိုင်မည်ဖြစ်ပြီး အခြားဘာသာစကားများဖြင့် ချည်တွင်းသိုလှောင်မှုအား အမှတ်ရစေသည်။
  • စတင်ချိန်တွင် စမ်းသပ်အင်္ဂါရပ်အကြောင်း သတိပေးချက် မက်ဆေ့ချ်ကို ဖယ်ရှားခဲ့သည်။ module တွေ ECMAScript ၅.၁ သွင်းကုန်နှင့် ပို့ကုန်ရှင်းတမ်းများကို အသုံးပြု၍ ချိတ်ဆက်ပြီး တင်ပို့သည်။ တစ်ချိန်တည်းမှာပင်၊ ESM module များကိုအကောင်အထည်ဖော်ခြင်းကိုယ်တိုင်ကစမ်းသပ်ဆဲဖြစ်သည်။
  • V8 အင်ဂျင်ကို ဗားရှင်းသို့ အပ်ဒိတ်လုပ်ထားသည်။ 8.1 (1, 2, 3) ၊ ယုတ္တိဗေဒပေါင်းစပ်အော်ပရေတာ "???" ကဲ့သို့သော စွမ်းဆောင်ရည်အသစ်နှင့် လုပ်ဆောင်ချက်အသစ်များ ပါ၀င်ပါသည်။ (ဘယ်ဘက်အော်ပရေတာသည် NULL သို့မဟုတ် သတ်မှတ်ထားခြင်းမရှိပါက ညာဘက် operand ကို ပြန်ပေးသည်) "?" အော်ပရေတာ ဂုဏ်သတ္တိများ သို့မဟုတ် ခေါ်ဆိုမှုများ၏ ကွင်းဆက်တစ်ခုလုံးကို တစ်ကြိမ်စစ်ဆေးခြင်းအတွက် (ဥပမာ၊ "db?.user?.name?.length" ကို ပဏာမစစ်ဆေးခြင်းမပြုဘဲ)၊ ဒေသန္တရအမည်များကို ရယူရန်အတွက် Intl.DisplayName နည်းလမ်း စသည်ဖြင့်၊
  • Stream APIs များ၏ တသမတ်တည်းဖြစ်မှုကို ပိုမိုကောင်းမွန်လာစေရန်နှင့် Node.js ၏ အခြေခံအစိတ်အပိုင်းများ၏ အပြုအမူကွဲပြားမှုများကို ဖယ်ရှားရန် ရည်ရွယ်၍ Stream API ၏ ပြန်လည်ပြင်ဆင်မှုကို လုပ်ဆောင်ခဲ့ပါသည်။ ဥပမာအားဖြင့်၊ http.OutgoingMessage ၏အပြုအမူသည် stream.Writable နှင့်နီးစပ်ပြီး၊ net.Socket သည် stream.Duplex နှင့်ဆင်တူသည်။ autoDestroy ရွေးချယ်မှုကို မူရင်းအားဖြင့် "true" ဟု သတ်မှတ်ထားသည်၊ ဆိုလိုသည်မှာ ပြီးစီးပါက "_destroy" ဟုခေါ်ဆိုပါသည်။
  • စမ်းသပ် API ပံ့ပိုးမှု ထပ်ထည့်ထားသည်။ WASI (WebAssembly စနစ် အင်တာဖေ့စ်) လည်ပတ်မှုစနစ်နှင့် တိုက်ရိုက်အပြန်အလှန်ဆက်သွယ်မှုအတွက် ဆော့ဖ်ဝဲလ်အင်တာဖေ့စ်များကို ပံ့ပိုးပေးခြင်း (ဖိုင်များ၊ ဆော့ဖ်ဝဲများ၊ စသည်ဖြင့် လုပ်ဆောင်ရန်အတွက် POSIX API)။
  • လိုအပ်ချက်တွေ တိုးလာပါတယ်။ အနည်းဆုံးဗားရှင်းများ compilers နှင့် platform များ- macOS 10.13 (High Sierra), GCC 6၊ Windows အသစ် 7/2008R2.

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

အပြိုင်တောင်းဆိုမှုများ အများအပြားကို ကိုင်တွယ်ရန်၊ Node.js သည် ပိတ်ဆို့ခြင်းမဟုတ်သော ဖြစ်ရပ်လုပ်ဆောင်ခြင်းနှင့် ပြန်ခေါ်ခြင်းဆိုင်ရာ ကိုင်တွယ်သူများကို သတ်မှတ်ခြင်းအပေါ် အခြေခံ၍ အညီအမျှ ကုဒ်လုပ်ဆောင်မှုပုံစံကို အသုံးပြုသည်။ multiplexing connections အတွက် ပံ့ပိုးပေးထားသော နည်းလမ်းများတွင် epoll၊ kqueue၊ /dev/poll နှင့် select လုပ်ပါ။ စာကြည့်တိုက်ကို multiplex ချိတ်ဆက်မှုများတွင် အသုံးပြုသည်။ libuvစူပါအဆောက်အဦတစ်ခုဖြစ်သည့် ဘာသာရေး Unix စနစ်များနှင့် Windows ရှိ IOCP ကျော်။ thread pool တစ်ခုဖန်တီးရန် စာကြည့်တိုက်ကို အသုံးပြုသည်။ လစ်ဘရီယိုပိတ်ဆို့ခြင်းမပြုသောမုဒ်တွင် DNS မေးမြန်းမှုများကို လုပ်ဆောင်ရန်အတွက် ပေါင်းစပ်ထားသည်။ c-ares များ. ပိတ်ဆို့ခြင်းကို ဖြစ်စေသော စနစ်ခေါ်ဆိုမှုအားလုံးကို thread pool အတွင်းတွင် လုပ်ဆောင်ပြီး၊ ထို့နောက်၊ signal handlers များကဲ့သို့ ၎င်းတို့၏ အလုပ်၏ရလဒ်ကို အမည်မဖော်လိုသော ပိုက်မှတဆင့် ပြန်ပို့ပေးပါသည်။ Google မှ ဖန်တီးထားသော အင်ဂျင်ကို အသုံးပြုခြင်းဖြင့် JavaScript ကုဒ်ကို အကောင်အထည်ဖော်ရန် သေချာပါသည်။ V8 (ထို့ပြင် Microsoft သည် Chakra-Core အင်ဂျင်ဖြင့် Node.js ဗားရှင်းကို ဖန်တီးနေသည်။

၎င်း၏အဓိကတွင် Node.js သည် frameworks များနှင့်ဆင်တူသည်။ Perl AnyEvent, Ruby Event Machine, Python Twisted и အကောင်အထည်ဖော်ခြင်း။ Tcl တွင် အဖြစ်အပျက်များ ဖြစ်သော်လည်း Node.js ရှိ အဖြစ်အပျက် ကွင်းဆက်ကို ဆော့ဖ်ဝဲအင်ဂျင်နီယာမှ ဝှက်ထားပြီး ဘရောက်ဆာတွင် လုပ်ဆောင်နေသည့် ဝဘ်အက်ပလီကေးရှင်းတစ်ခုတွင် ဖြစ်ရပ်ကို ကိုင်တွယ်ပုံနှင့် ဆင်တူသည်။ node.js အတွက် အပလီကေးရှင်းများ ရေးသားသည့်အခါ၊ ဥပမာ၊ “var result = db.query(“select..”);” အစား event-driven programming ၏ တိကျသော အချက်အလက်များကို ထည့်သွင်းစဉ်းစားရန် လိုအပ်ပါသည်။ အလုပ်ပြီးမြောက်မှုနှင့် ရလဒ်များ၏ နောက်ဆက်တွဲလုပ်ဆောင်မှုများကို စောင့်ဆိုင်းခြင်းဖြင့် Node.js သည် asynchronous execution နိယာမကို အသုံးပြုသည်။ ကုဒ်ကို “db.query(“select..”၊ function (result) {result processing});” အဖြစ် ပြောင်းလဲသွားသည်၊ ယင်းတွင် ထိန်းချုပ်မှုသည် နောက်ထပ်ကုဒ်သို့ ချက်ချင်းရောက်သွားမည်ဖြစ်ပြီး၊ ဒေတာရောက်ရှိသည်နှင့် မေးမြန်းချက်ရလဒ်ကို စီမံဆောင်ရွက်မည်ဖြစ်သည်။ .

source: opennet.ru

မှတ်ချက် Add