αžœαŸαž‘αž·αž€αžΆ JavaScript αž…αŸ†αž αŸ€αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ Node.js 21.0 αž˜αžΆαž“

Node.js 21.0 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™ αžŠαŸ‚αž›αž‡αžΆαžœαŸαž‘αž·αž€αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αžŽαŸ’αžαžΆαž‰αž“αŸ…αž€αŸ’αž“αž»αž„ JavaScript αŸ” សអខអ Node.js 21.0 αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαž™αŸˆαž–αŸαž› 6 αžαŸ‚αŸ” αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αžαŸ’αž„αŸƒαžαžΆαž„αž˜αž»αžαž“αŸαŸ‡ αžŸαŸ’αžαŸαžšαž—αžΆαž–αž“αŸƒαžŸαžΆαžαžΆ Node.js 20 αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹ αžŠαŸ‚αž›αž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αžŸαŸ’αžαžΆαž“αž—αžΆαž– LTS β€‹β€‹αž αžΎαž™αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαžšαž αžΌαžαžŠαž›αŸ‹αžαŸ‚αž˜αŸαžŸαžΆ αž†αŸ’αž“αžΆαŸ† 2026αŸ” αž€αžΆαžšαžαŸ‚αžšαž€αŸ’αžŸαžΆαžŸαžΆαžαžΆ LTS αž˜αž»αž“αž“αŸƒ Node.js 18.0 αž“αžΉαž„αž˜αžΆαž“αžšαž™αŸˆαž–αŸαž›αžšαž αžΌαžαžŠαž›αŸ‹αžαŸ‚αž€αž‰αŸ’αž‰αžΆ αž†αŸ’αž“αžΆαŸ† 2025 αž αžΎαž™αž†αŸ’αž“αžΆαŸ†αž˜αž»αž“αžŸαžΆαžαžΆ LTS αž…αž»αž„αž€αŸ’αžšαŸ„αž™ 16.0 αžšαž αžΌαžαžŠαž›αŸ‹αžαŸ‚αž˜αŸαžŸαžΆ αž†αŸ’αž“αžΆαŸ† 2024αŸ”

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

  • Fetch API αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαž€αžΆαžŸαžαžΆαž˜αžΆαž“αžŸαŸ’αžαŸαžšαž—αžΆαž– αžšαž…αž“αžΆαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αŸ’αž‘αž»αž€αž’αž“αž’αžΆαž“αž“αŸ…αž›αžΎαž”αžŽαŸ’αžαžΆαž‰ αž“αž·αž„αžŸαž˜αŸ’αžšαž½αž›αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αžΌαžŠ JavaScript αž‡αžΆαžŸαž€αž›αžŠαŸ‚αž›αžŸαž˜αžšαž˜αŸ’αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΎαž€αžΆαžšαž›αžΎαž•αŸ’αž“αŸ‚αž€αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž“αž·αž„αž’αžαž·αžαž·αž‡αž“αŸ” αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž‚αžΊαž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΌαžŠαž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ HTTP/1.1 undici αž αžΎαž™αž“αŸ…αž‡αž·αžαž”αŸ†αž•αž»αžαžαžΆαž˜αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αž…αŸ†αž–αŸ„αŸ‡ API αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αŸ” API αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž fetch() αž“αž·αž„αžœαžαŸ’αžαž»αž”αž‹αž˜αž€αžαžΆαŸ” αžŸαŸ†αžŽαžΎ αž“αž·αž„αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž” αžαŸ†αžŽαžΆαž„αž±αŸ’αž™αž”αž‹αž˜αž€αžαžΆ HTTP αžŸαŸ†αžŽαžΎ αž“αž·αž„αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αŸ” const res = αžšαž„αŸ‹αž…αžΆαŸ† fetch('https://nodejs.org/api/documentation.json'); αž”αŸ’αžšαžŸαž·αž“αž”αžΎ (res.ok) { const data = αžšαž„αŸ‹αž…αžΆαŸ† res.json(); console.log(αž‘αž·αž“αŸ’αž“αž“αŸαž™); }
  • αž€αžΆαžšβ€‹αž‚αžΆαŸ†αž‘αŸ’αžšβ€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ WebStreams API αžŠαŸ‚αž›β€‹αž•αŸ’αžαž›αŸ‹β€‹αž€αžΆαžšβ€‹αž…αžΌαž›β€‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšβ€‹αž‘αŸ…β€‹αž€αžΆαž“αŸ‹β€‹αž‘αž·αž“αŸ’αž“αž“αŸαž™β€‹αžŠαŸ‚αž›β€‹αž‘αž‘αž½αž›β€‹αž”αžΆαž“β€‹αžαžΆαž˜β€‹αž”αžŽαŸ’αžαžΆαž‰β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž’αŸ’αžœαžΎβ€‹αž±αŸ’αž™β€‹αž˜αžΆαž“β€‹αžŸαŸ’αžαž·αžšαž—αžΆαž–αŸ” API αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αž”αž“αŸ’αžαŸ‚αž˜αž’αŸ’αž“αž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž•αŸ’αž‘αžΆαž›αŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž–αŸαžαŸŒαž˜αžΆαž“αž˜αž€αžŠαž›αŸ‹αž”αžŽαŸ’αžαžΆαž‰αžŠαŸ„αž™αž˜αž·αž“αžšαž„αŸ‹αž…αžΆαŸ†αž―αž€αžŸαžΆαžšαž‘αžΆαŸ†αž„αž˜αžΌαž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž‰αž™αž€αŸ” αžœαžαŸ’αžαž»αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„ Node.js αžšαž½αž˜αž˜αžΆαž“ ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream αž“αž·αž„ DecompressionStreamαŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž“αŸαž–αž·αžŸαŸ„αž’αž“αŸαž“αŸƒαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ WebSocket αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš WebSocket αž‘αž„αŸ‹ "--experimental-websocket" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžšαž”αŸ€αž”αž–αž·αžŸαŸ„αž’αž“αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž“αŸƒαž˜αŸ‰αžΌαžŒαž»αž› JavaScript ESM (αž˜αŸ‰αžΌαžŒαž»αž› ECMAScript αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„αž˜αŸ‰αžΌαžŒαž»αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€) αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™ CommonJS (αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž…αŸ†αž–αŸ„αŸ‡ Node.js) αŸ” αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž˜αž·αž“αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαž›αŸ‹αž˜αŸ‰αžΌαžŒαž»αž›αžŠαŸ‚αž›αž‘αž˜αŸ’αžšαž„αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž™αŸ‰αžΆαž„αž…αŸ’αž”αžΆαžŸαŸ‹αžαžΆαž˜αžšαž™αŸˆαžœαžΆαž› "αž”αŸ’αžšαž—αŸαž‘" αž“αŸ…αž€αŸ’αž“αž»αž„ package.json αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžαžΆαž˜αžšαž™αŸˆαž‘αž„αŸ‹ "--input-type" αž¬αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αž―αž€αžŸαžΆαžš (.mjs αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ ESM, .cjs αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ CommonJS) αŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž˜αŸ‰αžΌαžŒαž»αž›αžŠαŸ‚αž›αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž™αŸ‰αžΆαž„αž…αŸ’αž”αžΆαžŸαŸ‹αžαžΆαž‡αžΆ CommonJS (αž§αž‘αžΆαž αžšαžŽαŸ αž˜αžΆαž“αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜ β€œ.js”) αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αž‘αž»αž€αž‡αžΆαž˜αŸ‰αžΌαžŒαž»αž› ESM αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžšαž”αŸ€αž”αžαŸ’αž˜αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αžΌαžŒαž»αž›αžαŸ’αž˜αžΈ αž‘αž„αŸ‹ "--experimental-default-type" αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αž“αžΎαž‘αžΎαž„αŸ”
  • αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ V8 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αžΆαž”αŸ‹αžŠαŸαžαž‘αŸ…αž€αŸ†αžŽαŸ‚ 11.8 αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„ Chromium 118 αžŠαŸ‚αž›αž₯αž‘αžΌαžœαž“αŸαŸ‡αž‚αžΆαŸ†αž‘αŸ’αžšαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžš ArrayBuffer.prototype.transfer αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαžΆαž€αŸ‹αž€αŸ’αžšαž»αž˜αž’αžΆαžšαŸ (groupBy method) αž“αž·αž„αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† WebAssembly αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸαžš (i32.add, i32.sub, i32.mul, i64 .add, i64.sub αž“αž·αž„ i64.mul)αŸ”
  • αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ globalPreload handler αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αžˆαž”αŸ‹ αžŠαžΎαž˜αŸ’αž”αžΈαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ αž“αž·αž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž˜αŸ‰αžΌαžŒαž»αž›αŸ”
  • αž‡αž˜αŸ’αžšαžΎαžŸ "flush" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž˜αž»αžαž„αžΆαžš fs.writeFile αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αžαŸ†αž‘αž·αž“αŸ’αž“αž“αŸαž™αž±αŸ’αž™ flushed αž‘αŸ…αž€αžΆαž“αŸ‹ drive αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŸαžšαžŸαŸαžšαž“αžΈαž˜αž½αž™αŸ—αŸ”
  • αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž“αŸƒαž€αžΌαžŠαžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž€αžΆαžšαž‰αŸ‚αž€ URL, αž‘αžΆαž‰αž™αž€ API, αž€αžΆαžšαž•αŸ’αžŸαžΆαž™, node:fs, αž“αž·αž„ HTTP αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžœαžαŸ’αžαž»αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αžŸαž€αž›αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž’αŸ†αž–αžΈαž…αŸ†αž“αž½αž“αžŸαŸ’αž“αžΌαž›αžŸαŸŠαžΈαž—αžΈαž™αžΌ αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαž›αž€αŸ’αžαžŽαŸˆαžŸαž˜αŸ’αž”αžαŸ’αžαž· navigator.hardwareConcurrency αŸ”
  • αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš β€œβ€”test” αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαž”αžΆαŸ†αž„ glob αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš (αž§αž‘αžΆαž αžšαžŽαŸ αž’αŸ’αž“αž€αž’αžΆαž…αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ β€œβ€”test **/*.test.js”)αŸ”
  • αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αž‰αŸ’αž…αž”αŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž”αžΆαž…αŸ‹ npm 10.2.0 αž“αž·αž„ llhttp 9.1.2 parser αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αŸ”
  • αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Visual Studio 2019 αž“αž·αž„αž€αŸ†αžŽαŸ‚αžšαž”αžŸαŸ‹ macOS αž…αžΆαžŸαŸ‹αž‡αžΆαž„ 11.0 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αžˆαž”αŸ‹αŸ”

αžœαŸαž‘αž·αž€αžΆ 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 αž“αž·αž„αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž–αž αž»αž‚αž»αžŽ αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ libuv αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎ αžŠαŸ‚αž›αž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ libev αž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’ Unix αž“αž·αž„ IOCP αž“αŸ…αž›αžΎ Windows αŸ” αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ libeio αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž”αžŽαŸ’αžαž»αŸ†αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™ αž αžΎαž™ c-ares αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αžŠαžΎαž˜αŸ’αž”αžΈαž’αž“αž»αžœαžαŸ’αžαžŸαŸ†αžŽαž½αžš DNS αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž˜αž·αž“αž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹αŸ” αž€αžΆαžšαž αŸ…αžαžΆαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž”αžŽαŸ’αžαžΆαž›αž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžαž»αŸ†αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™ αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αžŠαžΌαž…αž‡αžΆαž§αž”αž€αžšαžŽαŸαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαž‰αŸ’αž‰αžΆ αž•αŸ’αž‘αŸαžšαž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž˜αž€αžœαž·αž‰αžαžΆαž˜αžšαž™αŸˆαž”αŸ†αž–αž„αŸ‹αžŠαŸ‚αž›αž‚αŸ’αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡ (αž”αŸ†αž–αž„αŸ‹)αŸ” αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΌαžŠ JavaScript αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ V8 αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™ Google (αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ…αž‘αŸ€αž Microsoft αž€αŸ†αž–αž»αž„αž”αž„αŸ’αž€αžΎαžαž€αŸ†αžŽαŸ‚ Node.js αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ Chakra-Core)αŸ”

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

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

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