рд╕рд░реНрд╡реНрд╣рд░-рд╕рд╛рдЗрдб JavaScript рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо Node.js 21.0 рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ

Node.js 21.0 рд░рд┐рд▓реАрдЭ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реЗ, JavaScript рдордзреНрдпреЗ рдиреЗрдЯрд╡рд░реНрдХ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо. Node.js 21.0 рд╢рд╛рдЦрд╛ 6 рдорд╣рд┐рдиреНрдпрд╛рдВрд╕рд╛рдареА рд╕рдорд░реНрдерд┐рдд рдЕрд╕реЗрд▓. рдпреЗрддреНрдпрд╛ рдХрд╛рд╣реА рджрд┐рд╡рд╕рд╛рдВрдд, Node.js 20 рд╢рд╛рдЦреЗрдЪреЗ рд╕реНрдерд┐рд░реАрдХрд░рдг рдкреВрд░реНрдг рдХреЗрд▓реЗ рдЬрд╛рдИрд▓, рдЬреНрдпрд╛рд▓рд╛ LTS рджрд░реНрдЬрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдИрд▓ рдЖрдгрд┐ рдПрдкреНрд░рд┐рд▓ 2026 рдкрд░реНрдпрдВрдд рд╕рдорд░реНрдерд┐рдд рдЕрд╕реЗрд▓. Node.js 18.0 рдЪреНрдпрд╛ рдкреВрд░реНрд╡реАрдЪреНрдпрд╛ LTS рд╢рд╛рдЦреЗрдЪреА рджреЗрдЦрднрд╛рд▓ рд╕рдкреНрдЯреЗрдВрдмрд░ 2025 рдкрд░реНрдпрдВрдд рдЖрдгрд┐ рд╢реЗрд╡рдЯрдЪреНрдпрд╛ LTS рд╢рд╛рдЦрд╛ 16.0 рдЪреНрдпрд╛ рдЖрдзреАрдЪреНрдпрд╛ рд╡рд░реНрд╖реА рдПрдкреНрд░рд┐рд▓ 2024 рдкрд░реНрдпрдВрдд рдЪрд╛рд▓реЗрд▓.

рдкреНрд░рдореБрдЦ рд╕реБрдзрд╛рд░рдгрд╛:

  • Fetch API рд╕реНрдерд┐рд░ рдШреЛрд╖рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдиреЗрдЯрд╡рд░реНрдХрд╡рд░ рд╕рдВрд╕рд╛рдзрдиреЗ рд▓реЛрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рд╕рд░реНрд╡реНрд╣рд░ рдЖрдгрд┐ рдХреНрд▓рд╛рдпрдВрдЯ рдмрд╛рдЬреВрдВрд╡рд░ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп рд╕рд╛рд░реНрд╡рддреНрд░рд┐рдХ JavaScript рдХреЛрдбрдЪреЗ рд▓реЗрдЦрди рд╕реБрд▓рдн рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ. рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА HTTP/1.1 undici рдХреНрд▓рд╛рдпрдВрдЯрдЪреНрдпрд╛ рдХреЛрдбрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ рдЖрдгрд┐ рдмреНрд░рд╛рдЙрдЭрд░рдордзреНрдпреЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рдорд╛рди API рдЪреНрдпрд╛ рд╢рдХреНрдп рддрд┐рддрдХреНрдпрд╛ рдЬрд╡рд│ рдЖрд╣реЗ. API рдордзреНрдпреЗ fetch() рдкрджреНрдзрдд рдЖрдгрд┐ Headers рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд. рд╡рд┐рдирдВрддреА рдЖрдгрд┐ рдкреНрд░рддрд┐рд╕рд╛рдж, HTTP рд╢реАрд░реНрд╖рд▓реЗрдЦ, рд╡рд┐рдирдВрддреА рдЖрдгрд┐ рдкреНрд░рддрд┐рд╕рд╛рдж рджрд░реНрд╢рд╡рд┐рддреЗ. const res = await fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = await res.json(); console.log(рдбреЗрдЯрд╛); }
  • рд╡реЗрдмрд╕реНрдЯреНрд░реАрдо API рд╕рд╛рдареА рд╕рдорд░реНрдерди, рдЬреЗ рдиреЗрдЯрд╡рд░реНрдХрд╡рд░ рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣рд╛рдВрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдкреНрд░рджрд╛рди рдХрд░рддреЗ, рд╕реНрдерд┐рд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ. рдПрдкреАрдЖрдп рд╕рдВрдкреВрд░реНрдг рдлрд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рд╣реЛрдгреНрдпрд╛рдЪреА рд╡рд╛рдЯ рди рдкрд╛рд╣рддрд╛ рдиреЗрдЯрд╡рд░реНрдХрд╡рд░ рдорд╛рд╣рд┐рддреА рдпреЗрддрд╛рдЪ рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгрд╛рд░реЗ рддреБрдордЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рд╣рдБрдбрд▓рд░ рдЬреЛрдбрдгреЗ рд╢рдХреНрдп рдХрд░рддреЗ. Node.js рдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдордзреНрдпреЗ ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream рдЖрдгрд┐ DecompressionStream рдпрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ.
  • рд╡реЗрдмрд╕реЙрдХреЗрдЯ рдХреНрд▓рд╛рдпрдВрдЯрдЪреА рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЬреЛрдбрд▓реА, рдмреНрд░рд╛рдЙрдЭрд░рд╢реА рд╕реБрд╕рдВрдЧрдд. рд╡реЗрдмрд╕реЙрдХреЗрдЯ рд╕рдорд░реНрдерди рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, тАЬ--рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ-рд╡реЗрдмрд╕реЙрдХреЗрдЯтАЭ рдзреНрд╡рдЬ рдкреНрд░рджрд╛рди рдХреЗрд▓рд╛ рдЖрд╣реЗ.
  • CommonJS (Node.js рд╕рд╛рдареА рд╡рд┐рд╢рд┐рд╖реНрдЯ) рдРрд╡рдЬреА JavaScript рдореЙрдбреНрдпреВрд▓реНрд╕ ESM (ECMAScript рдореЙрдбреНрдпреВрд▓реНрд╕, рдмреНрд░рд╛рдЙрдЭрд░рд╕рд╛рдареА рдореЙрдбреНрдпреВрд▓реНрд╕рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реЗрд▓реЗ) рдЪреА рдбреАрдлреЙрд▓реНрдЯ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдореЛрдб рдЬреЛрдбрд▓рд╛. рдмрджрд▓ рддреНрдпрд╛ рдореЙрдбреНрдпреВрд▓реНрд╕рд╡рд░ рдкрд░рд┐рдгрд╛рдо рдХрд░рдд рдирд╛рд╣реА рдЬреНрдпрд╛рдВрдЪреЗ рд╕реНрд╡рд░реВрдк рдкреЕрдХреЗрдЬ.json рдордзреАрд▓ "рдкреНрд░рдХрд╛рд░" рдлреАрд▓реНрдбрджреНрд╡рд╛рд░реЗ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ, "--рдЗрдирдкреБрдЯ-рдкреНрд░рдХрд╛рд░" рдзреНрд╡рдЬрд╛рджреНрд╡рд╛рд░реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗ рдХрд┐рдВрд╡рд╛ рдлрд╛рдЗрд▓ рд╡рд┐рд╕реНрддрд╛рд░рд╛рдореБрд│реЗ рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ (. ESM рд╕рд╛рдареА mjs, .cjs CommonJS рд╕рд╛рдареА). рддрдерд╛рдкрд┐, рдХреЙрдордирдЬреЗрдПрд╕ рдореНрд╣рдгреВрди рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рди рдХреЗрд▓реЗрд▓реЗ рдореЙрдбреНрдпреВрд▓ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, тАЬ.jsтАЭ рд╡рд┐рд╕реНрддрд╛рд░ рдЖрд╣реЗ) рдирд╡реАрди рдореЛрдб рд╕рдХреНрд╖рдо рдХреЗрд▓реНрдпрд╛рд╡рд░ ESM рдореЙрдбреНрдпреБрд▓реНрд╕ рдореНрд╣рдгреВрди рдорд╛рдирд▓реЗ рдЬрд╛рддреАрд▓. рдирд╡реАрди рдореЙрдбреНрдпреВрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рд╕рдХреНрд░рд┐рдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, тАЬ--рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ-рдбреАрдлреЙрд▓реНрдЯ-рдкреНрд░рдХрд╛рд░тАЭ рдзреНрд╡рдЬ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреЗрд▓рд╛ рдЖрд╣реЗ.
  • V8 рдЗрдВрдЬрд┐рди рдЖрд╡реГрддреНрддреА 11.8 рд╡рд░ рдЕрдкрдбреЗрдЯ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдЬреЗ Chromium 118 рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ, рдЬреЗ рдЖрддрд╛ ArrayBuffer.prototype.transfer рдкрджреНрдзрддреА, рдЧрдЯ рдЕреЕрд░реЗ (рдЧреНрд░реБрдкрдмрд╛рдп рдкрджреНрдзрдд) рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЖрдгрд┐ рд╕реНрдерд┐рд░рд╛рдВрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА WebAssembly рд╕реВрдЪрдирд╛рдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрддреЗ (i32.add, i32.sub, i32.mul, i64 .add, i64.sub рдЖрдгрд┐ i64.mul).
  • рдЧреНрд▓реЛрдмрд▓ рдкреНрд░реАрд▓реЛрдб рд╣рдБрдбрд▓рд░рд╕рд╛рдареА рд╕рдорд░реНрдерди рдмрдВрдж рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдореЙрдбреНрдпреБрд▓реНрд╕ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЙрд▓реНрд╕рдЪреА рдиреЛрдВрджрдгреА рдЖрдгрд┐ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ.
  • fs.writeFile рдлрдВрдХреНрд╢рдирдордзреНрдпреЗ "рдлреНрд▓рд╢" рдкрд░реНрдпрд╛рдп рдЬреЛрдбрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ рдЬреЗрдгреЗрдХрд░реВрди рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдЦрди рдСрдкрд░реЗрд╢рдирдирдВрддрд░ рдбреЗрдЯрд╛ рд╕рдХреНрддреАрдиреЗ рдбреНрд░рд╛рдЗрд╡реНрд╣рд╡рд░ рдлреНрд▓рд╢ рдХреЗрд▓рд╛ рдЬрд╛рдИрд▓.
  • URL рдкрд╛рд░реНрд╕рд┐рдВрдЧ, fetch API, streams, node:fs рдЖрдгрд┐ HTTP рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдбрдЪреЗ рд╕реБрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди.
  • рдЬрд╛рдЧрддрд┐рдХ рдиреЗрд╡реНрд╣рд┐рдЧреЗрдЯрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛрдбрд▓реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, CPU рдХреЛрд░рдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдмрджреНрджрд▓ рдбреЗрдЯрд╛ рдорд┐рд│рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣реА navigator.hardwareConcurrency рдЧреБрдгрдзрд░реНрдо рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛.
  • тАЬтАФрдЪрд╛рдЪрдгреАтАЭ рдкреЕрд░рд╛рдореАрдЯрд░рдордзреНрдпреЗ, рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдЪрд╛рдЪрдгреНрдпрд╛ рдирд┐рд╡рдбрдгреНрдпрд╛рд╕рд╛рдареА рдЧреНрд▓реЛрдм рдорд╛рд╕реНрдХрд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреБрдореНрд╣реА тАЬтАФtest **/*.test.js.тАЭ рдирдореВрдж рдХрд░реВ рд╢рдХрддрд╛).
  • рдмрдВрдбрд▓ рдХреЗрд▓реЗрд▓реЗ рдкреЕрдХреЗрдЬ рдореЕрдиреЗрдЬрд░ npm 10.2.0 рдЖрдгрд┐ llhttp 9.1.2 рдкрд╛рд░реНрд╕рд░ рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ.
  • рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓ рд╕реНрдЯреБрдбрд┐рдУ 2019 рдЖрдгрд┐ macOS рдЪреНрдпрд╛ 11.0 рдкреЗрдХреНрд╖рд╛ рдЬреБрдиреНрдпрд╛ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрд╕рд╛рдареА рд╕рдорд░реНрдерди рдмрдВрдж рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реЗ рдЖрд╣реЗ.

Node.js рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рд╡реЗрдм рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░-рд╕рд╛рдЗрдб рд╕рдорд░реНрдердирд╛рд╕рд╛рдареА рдЖрдгрд┐ рд╕рд╛рдорд╛рдиреНрдп рдХреНрд▓рд╛рдпрдВрдЯ рдЖрдгрд┐ рд╕рд░реНрд╡реНрд╣рд░ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджреЛрдиреНрд╣реА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. Node.js рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд╛рдврд╡рдгреНрдпрд╛рд╕рд╛рдареА, рдореЙрдбреНрдпреВрд▓реНрд╕рдЪрд╛ рдПрдХ рдореЛрдард╛ рд╕рдВрдЧреНрд░рд╣ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рддреБрдореНрд╣рд╛рд▓рд╛ HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 рд╕рд░реНрд╡реНрд╣рд░ рдЖрдгрд┐ рдХреНрд▓рд╛рдпрдВрдЯрдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╣ рдореЙрдбреНрдпреВрд▓реНрд╕, рдПрдХрддреНрд░реАрдХрд░рдгрд╛рд╕рд╛рдареА рдореЙрдбреНрдпреВрд▓реНрд╕ рдорд┐рд│реВ рд╢рдХрддрд╛рдд. рд╡рд┐рд╡рд┐рдз рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХрд╕рд╣, WebSocket рдЖрдгрд┐ Ajax рд╣рдБрдбрд▓рд░реНрд╕, DBMS (MySQL, PostgreSQL, SQLite, MongoDB), рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрд┐рди, CSS рдЗрдВрдЬрд┐рди, рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдЖрдгрд┐ рдЕрдзрд┐рдХреГрддрддрд╛ рдкреНрд░рдгрд╛рд▓реА (OAuth), XML рдкрд╛рд░реНрд╕рд░рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА.

рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рд╕рдорд╛рдВрддрд░ рд╡рд┐рдирдВрддреНрдпрд╛ рд╣рд╛рддрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА, Node.js рдиреЙрди-рдмреНрд▓реЙрдХрд┐рдВрдЧ рдЗрд╡реНрд╣реЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЖрдгрд┐ рдХреЙрд▓рдмреЕрдХ рд╣рдБрдбрд▓рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЛрдб рдПрдХреНрдЭрд┐рдХреНрдпреВрд╢рди рдореЙрдбреЗрд▓ рд╡рд╛рдкрд░рддреЗ. рдорд▓реНрдЯрд┐рдкреНрд▓реЗрдХреНрд╕рд┐рдВрдЧ рдХрдиреЗрдХреНрд╢рдирд╕рд╛рдареА рд╕рдорд░реНрдерд┐рдд рдкрджреНрдзрддреАрдВрдордзреНрдпреЗ epoll, kqueue, /dev/poll рдЖрдгрд┐ рд╕рд┐рд▓реЗрдХреНрдЯ рдпрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рд╣реЛрддреЛ. рдХрдиреЗрдХреНтАНрд╢рди рдорд▓реНрдЯрд┐рдкреНрд▓реЗрдХреНтАНрд╕рд┐рдВрдЧрд╕рд╛рдареА, libuv рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ, рдЬреА рдпреБрдирд┐рдХреНрд╕ рд╕рд┐рд╕реНтАНрдЯрдорд╡рд░ libev рдЖрдгрд┐ Windows рд╡рд░реАрд▓ IOCP рд╡рд░ рдЕреЕрдб-рдСрди рдЖрд╣реЗ. libeio рд▓рд╛рдпрдмреНрд░рд░реАрдЪрд╛ рд╡рд╛рдкрд░ рдереНрд░реЗрдб рдкреВрд▓ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ c-ares рдиреЙрди-рдмреНрд▓реЙрдХрд┐рдВрдЧ рдореЛрдбрдордзреНрдпреЗ DNS рдХреНрд╡реЗрд░реА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХрддреНрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдмреНрд▓реЙрдХрд┐рдВрдЧрд▓рд╛ рдХрд╛рд░рдгреАрднреВрдд рдЕрд╕рд▓реЗрд▓реЗ рд╕рд░реНрд╡ рд╕рд┐рд╕реНрдЯреАрдо рдХреЙрд▓ рдереНрд░реЗрдб рдкреВрд▓рдордзреНрдпреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдирдВрддрд░, рд╕рд┐рдЧреНрдирд▓ рд╣рдБрдбрд▓рд░реНрд╕рдкреНрд░рдорд╛рдгреЗ, рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдХрд╛рдорд╛рдЪрд╛ рдирд┐рдХрд╛рд▓ рдЕрдЬреНрдЮрд╛рдд рдкрд╛рдИрдкрджреНрд╡рд╛рд░реЗ рдкрд░рдд рджреЗрддрд╛рдд. Google рдиреЗ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ V8 рдЗрдВрдЬрд┐рдирдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рджреНрд╡рд╛рд░реЗ JavaScript рдХреЛрдбрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ (рдпрд╛рд╢рд┐рд╡рд╛рдп, рдорд╛рдпрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдЪрдХреНрд░-рдХреЛрд░ рдЗрдВрдЬрд┐рдирд╕рд╣ Node.js рдЪреА рдЖрд╡реГрддреНрддреА рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдд рдЖрд╣реЗ).

рддреНрдпрд╛рдЪреНрдпрд╛ рдореБрд│рд╛рдд, Node.js рд╣реЗ Perl AnyEvent, Ruby Event Machine, Python Twisted рдлреНрд░реЗрдорд╡рд░реНрдХ рдЖрдгрд┐ Tcl рдордзреАрд▓ рдЗрд╡реНрд╣реЗрдВрдЯреНрд╕рдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ Node.js рдордзреАрд▓ рдЗрд╡реНрд╣реЗрдВрдЯ рд▓реВрдк рд╡рд┐рдХрд╕рдХрд╛рдкрд╛рд╕реВрди рд▓рдкрд▓реЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рд╡реЗрдм рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдордзреАрд▓ рдЗрд╡реНрд╣реЗрдВрдЯ рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕рд╛рд░рдЦреЗ рджрд┐рд╕рддреЗ. рдмреНрд░рд╛рдЙрдЭрд░рдордзреНрдпреЗ рдЪрд╛рд▓реВ рдЖрд╣реЗ. node.js рд╕рд╛рдареА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓рд┐рд╣рд┐рддрд╛рдирд╛, рдЗрд╡реНрд╣реЗрдВрдЯ-рдЪрд╛рд▓рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрдЪреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, тАЬvar result = db.query(тАЬselect..тАЭ);тАЭ рдХрд░рдгреНрдпрд╛рдРрд╡рдЬреА. рдХрд╛рдо рдкреВрд░реНрдг рд╣реЛрдгреНрдпрд╛рдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реВрди рдЖрдгрд┐ рдкрд░рд┐рдгрд╛рдорд╛рдВрдЪреНрдпрд╛ рддреНрдпрд╛рдирдВрддрд░рдЪреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕рд╣, Node.js рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреЗ рддрддреНрддреНрд╡ рд╡рд╛рдкрд░рддреЗ, рдЙрджрд╛. рдХреЛрдбрдЪреЗ рд░реВрдкрд╛рдВрддрд░ тАЬdb.query(тАЬselect..тАЭ, function (result) {result processing});тАЭ рдордзреНрдпреЗ рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдирд┐рдпрдВрддреНрд░рдг рддрд╛рдмрдбрддреЛрдм рдкреБрдвреАрд▓ рдХреЛрдбрдХрдбреЗ рдЬрд╛рдИрд▓ рдЖрдгрд┐ рдбреЗрдЯрд╛ рдЖрд▓реНрдпрд╛рд╡рд░ рдХреНрд╡реЗрд░реА рдирд┐рдХрд╛рд▓рд╛рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реА рдЬрд╛рдИрд▓.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛