αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ JavaScript Node.js 14.0 αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ

αž”αžΆαž“αž€αžΎαžαž‘αžΎαž„ αž€αžΆαžšαžŠαŸ„αŸ‡αž›αŸ‚αž„ Node.js ៑αŸ₯, αžœαŸαž‘αž·αž€αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αžŽαŸ’αžαžΆαž‰αž“αŸ…αž€αŸ’αž“αž»αž„ JavaScript αŸ” Node.js 14.0 αž‚αžΊαž‡αžΆαžŸαžΆαžαžΆαž‡αŸ†αž“αž½αž™αžšαž™αŸˆαž–αŸαž›αžœαŸ‚αž„ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸαŸ‡αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ‚αžαž»αž›αžΆαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžŸαŸ’αžαŸαžšαž—αžΆαž–αŸ” Node.js 14.0 αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžš αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αž αžšαž αžΌαžαžŠαž›αŸ‹αžαŸ‚αž˜αŸαžŸαžΆ αž†αŸ’αž“αžΆαŸ† 2023αŸ” αž€αžΆαžšαžαŸ‚αž‘αžΆαŸ†αžŸαžΆαžαžΆ LTS αž˜αž»αž“αž“αŸƒ Node.js 12.0 αž“αžΉαž„αž˜αžΆαž“αžšαž™αŸˆαž–αŸαž›αžšαž αžΌαžαžŠαž›αŸ‹αžαŸ‚αž˜αŸαžŸαžΆ αž†αŸ’αž“αžΆαŸ† 2022 αž αžΎαž™αž†αŸ’αž“αžΆαŸ†αž˜αž»αž“αžŸαžΆαžαžΆ LTS αž…αž»αž„αž€αŸ’αžšαŸ„αž™ 10.0 αžšαž αžΌαžαžŠαž›αŸ‹αžαŸ‚αž˜αŸαžŸαžΆ αž†αŸ’αž“αžΆαŸ† 2021αŸ” αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαžΆαžαžΆαžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž‘αžΈ 13.x αž“αžΉαž„αž”αž‰αŸ’αž…αž”αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ‚αž˜αž·αžαž»αž“αžΆαž“αŸƒαž†αŸ’αž“αžΆαŸ†αž“αŸαŸ‡αŸ”

αžŸαŸ†αžαžΆαž“αŸ‹ αž€αžΆαžšαž€αŸ‚αž›αž˜αŸ’αž’:

  • αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž—αŸ’αž›αžΆαž˜αŸ— αž¬αž“αŸ…αž–αŸαž›αž€αžΎαžαž‘αžΎαž„αž“αŸƒαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž˜αž½αž™αž…αŸ†αž“αž½αž“αž˜αžΆαž“αžŸαŸ’αžαŸαžšαž—αžΆαž– αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαžšαŸ„αž‚αžœαž·αž“αž·αž…αŸ’αž†αŸαž™αžŠαŸ‚αž›αž”αž„αŸ’αž αžΆαž‰αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž‡αž½αž™αžœαž·αž“αž·αž…αŸ’αž†αŸαž™αž”αž‰αŸ’αž αžΆαžŠαžΌαž…αž‡αžΆ αž‚αžΆαŸ†αž„ αž€αžΆαžšαž’αŸ’αžœαžΎαž±αŸ’αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαž™αž…αž»αŸ‡ αž€αžΆαžšαž›αŸαž…αž’αŸ’αž›αžΆαž™αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αž€αžΆαžšαž•αŸ’αž‘αž»αž€αžŸαŸŠαžΈαž—αžΈαž™αžΌαžαŸ’αž›αžΆαŸ†αž„ αž›αž‘αŸ’αž’αž•αž›αž€αŸ†αž αž»αžŸαžŠαŸ‚αž›αž˜αž·αž“αž”αžΆαž“αžšαŸ†αž–αžΉαž„αž‘αž»αž€αŸ”αž›αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš API αž–αž·αžŸαŸ„αž’αž“αŸ Async Local Storage αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž“αŸƒαžαŸ’αž“αžΆαž€αŸ‹ AsyncLocalStorage αžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαžŸαŸ’αžαžΆαž“αž—αžΆαž–αž’αžŸαž˜αž€αžΆαž›αž‡αžΆαž˜αž½αž™αž’αŸ’αž“αž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαžšαž αŸ…αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰ αž“αž·αž„αž€αžΆαžšαžŸαž“αŸ’αž™αžΆαŸ” AsyncLocalStorage αž’αž“αž»αž‰αŸ’αž‰αžΆαžβ€‹αž±αŸ’αž™β€‹αž’αŸ’αž“αž€β€‹αžšαž€αŸ’αžŸαžΆβ€‹αž‘αž»αž€β€‹αž‘αž·αž“αŸ’αž“αž“αŸαž™β€‹αžαžŽαŸˆβ€‹αž–αŸαž›β€‹αžŠαŸ‚αž›β€‹αžŸαŸ†αžŽαžΎβ€‹αž‚αŸαž αž‘αŸ†αž–αŸαžšβ€‹αž˜αž½αž™β€‹αž€αŸ†αž–αž»αž„β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αžŠαŸ†αžŽαžΎαžšβ€‹αž€αžΆαžš αžŠαŸ„αž™β€‹αž“αžΉαž€β€‹αžƒαžΎαž‰β€‹αž–αžΈβ€‹αž€αžΆαžšβ€‹αž•αŸ’αž‘αž»αž€β€‹αž‘αž·αž“αŸ’αž“αž“αŸαž™β€‹αž€αŸ’αž“αž»αž„β€‹αžαŸ†αž”αž“αŸ‹β€‹αž‡αžΆβ€‹αž—αžΆαžŸαžΆβ€‹αž•αŸ’αžŸαŸαž„β€‹αž‘αŸ€αžαŸ”
  • αž”αžΆαž“αž›αž»αž”αžŸαžΆαžšαž–αŸ’αžšαž˜αžΆαž“αž’αŸ†αž–αžΈαž˜αž»αžαž„αžΆαžšαž–αž·αžŸαŸ„αž’αž“αŸαž“αŸ…αž–αŸαž›αž€αŸ†αž–αž»αž„αž•αŸ’αž‘αž»αž€ αž˜αŸ‰αžΌαžŒαž»αž› ECMAScript αž†αŸ’αž“αžΆαŸ† ្០៑αŸ₯ αž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹ αž“αž·αž„αž“αžΆαŸ†αž…αŸαž‰αžŠαŸ„αž™αž”αŸ’αžšαžΎαžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž“αžΆαŸ†αž…αžΌαž› αž“αž·αž„αž“αžΆαŸ†αž…αŸαž‰αŸ” αž‘αž“αŸ’αž‘αžΉαž˜αž“αžΉαž„αž“αŸαŸ‡αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž˜αŸ‰αžΌαžŒαž»αž› ESM αžαŸ’αž›αž½αž“αžœαžΆαž“αŸ…αžαŸ‚αž‡αžΆαž€αžΆαžšαž–αž·αžŸαŸ„αž’αž“αŸαŸ”
  • αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ V8 αž”αžΆαž“αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž‘αŸ…αž€αŸ†αžŽαŸ‚ 8.1 (1, 2, 3) αžŠαŸ‚αž›αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžαŸ’αž˜αžΈ αž“αž·αž„αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžŠαžΌαž…αž‡αžΆ αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αžΌαž‡αžΈαžαž›αžαŸ’αž˜αžΈ "???" (αžαŸ’αžšαž‘αž”αŸ‹ operand αžαžΆαž„αžŸαŸ’αžŠαžΆαŸ† αž”αŸ’αžšαžŸαž·αž“αž”αžΎ operand αžαžΆαž„αž†αŸ’αžœαŸαž„αž‚αžΊ NULL αž¬αž˜αž·αž“αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹ αž αžΎαž™αž…αŸ’αžšαžΆαžŸαž˜αž€αžœαž·αž‰) αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžš "?" αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžαŸ‚αž˜αŸ’αžαž„αž“αŸƒαžαŸ’αžŸαŸ‚αžŸαž„αŸ’αžœαžΆαž€αŸ‹αž“αŸƒαž›αž€αŸ’αžαžŽαŸˆαžŸαž˜αŸ’αž”αžαŸ’αžαž·αž¬αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αž‘αžΆαŸ†αž„αž˜αžΌαž› (αž§αž‘αžΆαž αžšαžŽαŸ "db?.user?.name?.length" αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž”αž‹αž˜) αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžš Intl.DisplayName αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‘αž‘αž½αž›αž”αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡αžŠαŸ‚αž›αž”αžΆαž“αž’αŸ’αžœαžΎαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžΈαž™αž€αž˜αŸ’αž˜αŸ”αž›αŸ”
  • αž€αžΆαžšαž–αž·αž“αž·αžαŸ’αž™αž‘αžΎαž„αžœαž·αž‰αž“αŸƒ Stream API αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž€αŸ’αž“αž»αž„αž‚αŸ„αž›αž”αŸ†αžŽαž„αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαž—αžΆαž–αžŸαŸŠαžΈαžŸαž„αŸ’αžœαžΆαž€αŸ‹αž‚αŸ’αž“αžΆαž“αŸƒ Stream APIs αž“αž·αž„αž›αž»αž”αž”αŸ†αž”αžΆαžαŸ‹αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž₯αžšαž·αž™αžΆαž”αžαž“αŸƒαž•αŸ’αž“αŸ‚αž€αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž“αŸƒ Node.js αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž₯αžšαž·αž™αžΆαž”αžαžšαž”αžŸαŸ‹ http.OutgoingMessage αž‚αžΊαž“αŸ…αž‡αž·αž stream.Writable αž αžΎαž™ net.Socket αž‚αžΊαžŸαŸ’αžšαžŠαŸ€αž„αž“αžΉαž„ stream.DuplexαŸ” αž‡αž˜αŸ’αžšαžΎαžŸ autoDestroy αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‘αŸ…αž‡αžΆ "αž–αž·αž" αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸαž™αžαžΆαž αŸ… "_destroy" αž“αŸ…αž–αŸαž›αž”αž‰αŸ’αž…αž”αŸ‹αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš API αž–αž·αžŸαŸ„αž’αž“αŸ αžœαŸ‰αžΆαžŸαžΆ (αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’ WebAssembly) αž€αžΆαžšαž•αŸ’αžαž›αŸ‹αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž‡αžΆαž˜αž½αž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš (POSIX API αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž―αž€αžŸαžΆαžš αžšαž“αŸ’αž’αŸ”αž›αŸ”)αŸ”
  • αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž€αžΎαž“αž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ αž€αŸ†αžŽαŸ‚αžαž·αž…αžαž½αž…αž”αŸ†αž•αž»αžαŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„ αž“αž·αž„αžœαŸαž‘αž·αž€αžΆαŸ– macOS 10.13 (High Sierra), GCC 6, αžœαžΈαž“αžŠαžΌαžαŸ’αž˜αžΈαž‡αžΆαž„ 7/2008R2.

αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž™αžΎαž„αž…αžΆαŸ†αžαžΆαžœαŸαž‘αž·αž€αžΆ Node.js αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž‘αžΆαŸ†αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸαž αž‘αŸ†αž–αŸαžš αž“αž·αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αžŽαŸ’αžαžΆαž‰αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž’αž˜αŸ’αž˜αžαžΆαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž–αž„αŸ’αžšαžΈαž€αž˜αž»αžαž„αžΆαžšαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Node.js αž˜αž½αž™αž…αŸ†αž“αž½αž“αž’αŸ†αž“αŸƒ αž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž˜αŸ‰αžΌαžŒαž»αž›αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αžŸαŸ’αžœαŸ‚αž„αžšαž€αž˜αŸ‰αžΌαžŒαž»αž›αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, αž˜αŸ‰αžΌαžŒαž»αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž˜αž½αž™αž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒαž”αžŽαŸ’αžŠαžΆαž‰αž•αŸ’αžŸαŸαž„αŸ—, WebSocket αž“αž·αž„ Ajax handlers, αž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ… DBMS (MySQL, PostgreSQL, SQLite , MongoDB ), αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž‚αŸ†αžšαžΌ, αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ CSS, αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‚αŸ’αžšαžΈαž” αž“αž·αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αž“αž»αž‰αŸ’αž‰αžΆαž (OAuth), αž§αž”αž€αžšαžŽαŸαž‰αŸ‚αž€ XML αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαŸ†αžŽαžΎαžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαž˜αž½αž™αž…αŸ†αž“αž½αž“αž’αŸ† Node.js αž”αŸ’αžšαžΎαž‚αŸ†αžšαžΌαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΌαžŠαž’αžŸαž˜αž€αžΆαž›αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž˜αž·αž“αžšαžΆαžšαžΆαŸ†αž„ αž“αž·αž„αž€αŸ†αžŽαžαŸ‹αž§αž”αž€αžšαžŽαŸαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αžΆαžšαž αŸ…αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αŸ” αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž–αž αž»αž‚αž»αžŽαžšαž½αž˜αž˜αžΆαž“ epoll, kqueue, /dev/poll αž“αž·αž„αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαŸ” αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž—αŸ’αž‡αžΆαž”αŸ‹αž–αž αž»αž‚αž»αžŽ αž›αžΈαž”αŸŠαžΌαžœαžŠαŸ‚αž›αž‡αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‡αžΆαž“αŸ‹αž›αžΎ αž›αžΈαž” αž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž™αžΌαž“αžΈαž€ αž“αž·αž„αž›αžΎ IOCP αž“αŸ…αž›αžΎαžœαžΈαž“αžŠαžΌαŸ” αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž”αžŽαŸ’αžαž»αŸ†αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™ αž›αžΈαž”αŸαž™αŸ‰αžΌαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžŸαŸ†αžŽαž½αžš DNS αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž˜αž·αž“αž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž› ស៊ី-ធេស. αž€αžΆαžšαž αŸ…αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž”αžŽαŸ’αžαžΆαž›αž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžαž»αŸ†αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™ αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αžŠαžΌαž…αž‡αžΆαž§αž”αž€αžšαžŽαŸαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαž‰αŸ’αž‰αžΆ αž”αž‰αŸ’αž‡αžΌαž“αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αžαžΆαž˜αžšαž™αŸˆαž”αŸ†αž–αž„αŸ‹αžŠαŸ‚αž›αž‚αŸ’αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡αŸ” αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΌαžŠ JavaScript αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αžΆαž“αžΆαžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™ Google V8 (αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ Microsoft αž€αŸ†αž–αž»αž„αž”αž„αŸ’αž€αžΎαžαž€αŸ†αžŽαŸ‚ Node.js αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ Chakra-Core)αŸ”

αž“αŸ…αžŸαŸ’αž“αžΌαž›αžšαž”αžŸαŸ‹αžœαžΆ Node.js αž‚αžΊαžŸαŸ’αžšαžŠαŸ€αž„αž‘αŸ…αž“αžΉαž„αž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒ Perl AnyEvent, αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ Ruby, Python Twisted ΠΈ αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž“αŸ…αž€αŸ’αž“αž»αž„ Tcl αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžšαž„αŸ’αžœαž·αž›αž‡αž»αŸ†αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž“αŸ…αž€αŸ’αž“αž»αž„ Node.js αžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αžΆαž€αŸ‹αž–αžΈαž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž αžΎαž™αžŸαŸ’αžšαžŠαŸ€αž„αž“αžΉαž„αž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸαž αž‘αŸ†αž–αŸαžšαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αŸ” αž“αŸ…αž–αŸαž›αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ node.js αžœαžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž‚αž·αžαž‚αžΌαžšαž–αžΈαž—αžΆαž–αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸƒαž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž‡αŸ†αžšαž»αž‰αžŠαŸ„αž™αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž€αžΆαžšαž’αŸ’αžœαžΎ "var result = db.query("select..");" αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαžšαž„αŸ‹αž…αžΆαŸ†αž€αžΆαžšαž”αž‰αŸ’αž…αž”αŸ‹αž€αžΆαžšαž„αžΆαžš αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αž‘αŸ’αž’αž•αž›αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹ Node.js αž”αŸ’αžšαžΎαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž’αžŸαž˜αž€αžΆαž› αž–αŸ„αž›αž‚αžΊαž§αŸ” αž€αžΌαžŠαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ†αž”αŸ’αž›αŸ‚αž„αž‘αŸ…αž‡αžΆ β€œdb.query(β€œselect..”, function (result) {result processing});” αžŠαŸ‚αž›αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž“αžΉαž„αž”αž‰αŸ’αž‡αžΌαž“αž—αŸ’αž›αžΆαž˜αŸ—αž‘αŸ…αž€αžΆαž“αŸ‹αž›αŸαžαž€αžΌαžŠαž”αž“αŸ’αžαŸ‚αž˜ αž αžΎαž™αž›αž‘αŸ’αž’αž•αž›αžŸαŸ†αžŽαž½αžšαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αž€αžŠαž›αŸ‹αŸ” .

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹