Налична 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() ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ Headers. Заявка ΠΈ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€, прСдставляващи HTTP Π·Π°Π³Π»Π°Π²ΠΊΠΈΡ‚Π΅, заявката ΠΈ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π°. const res = await fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = await res.json(); console.log(Π΄Π°Π½Π½ΠΈ); }
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° API WebStreams, която осигурява Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈ ΠΏΠΎ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°, Π΅ стабилизирана. 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) ΠΈ инструкции Π½Π° WebAssembly Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° константи (i32.add, i32.sub, i32.mul, i64 .add, i64.sub ΠΈ i64.mul).
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π·Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€Π° globalPreload Π΅ прСустановСна Π² ΠΏΠΎΠ»Π·Π° Π½Π° рСгистриранС ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° извиквания Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ.
  • Към функцията fs.writeFile Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° опция β€žΠΏΡ€ΠΎΠΌΠΈΠ²Π°Π½Π΅β€œ, Π·Π° Π΄Π° сС принудят Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π΄Π° сС изчистват Π² устройството слСд всяка опСрация Π·Π° запис.
  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° производитСлност Π½Π° ΠΊΠΎΠ΄Π°, ΡΠ²ΡŠΡ€Π·Π°Π½ с Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° URL адрСси, API Π·Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅, ΠΏΠΎΡ‚ΠΎΡ†ΠΈ, node:fs ΠΈ HTTP.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ ΠΎΠ±Π΅ΠΊΡ‚ Π·Π° Π³Π»ΠΎΠ±Π°Π»Π΅Π½ Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€. НапримСр, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ Π·Π° броя Π½Π° процСсорнитС ядра, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ свойството navigator.hardwareConcurrency.
  • Π’ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° β€žβ€”testβ€œ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ маски Π·Π° ΠΈΠ·Π±ΠΎΡ€ Π½Π° тСстовС Π·Π° изпълнСниС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° посочитС β€žβ€”test **/*.test.js.β€œ).
  • ΠŸΠ°ΠΊΠ΅Ρ‚Π½ΠΈΡΡ‚ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ npm 10.2.0 ΠΈ ΠΏΠ°Ρ€ΡΠ΅Ρ€ΡŠΡ‚ llhttp 9.1.2 са Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π·Π° Visual Studio 2019 ΠΈ вСрсии Π½Π° macOS, ΠΏΠΎ-стари ΠΎΡ‚ 11.0, Π΅ прСустановСна.

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Node.js ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΠΊΡ‚ΠΎ Π·Π° ΡΡŠΡ€Π²ΡŠΡ€Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΡƒΠ΅Π± прилоТСния, Ρ‚Π°ΠΊΠ° ΠΈ Π·Π° създаванС Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ клиСнтски ΠΈ ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ. Π—Π° Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Π½Π΅ Π½Π° функционалността Π½Π° прилоТСнията Π·Π° Node.js Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½Π° голяма колСкция ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π² която ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ с внСдряванС Π½Π° HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 ΡΡŠΡ€Π²ΡŠΡ€ΠΈ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π° интСграция с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΡƒΠ΅Π± Ρ€Π°ΠΌΠΊΠΈ, WebSocket ΠΈ Ajax ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ, Π‘Π£Π‘Π” ΠΊΠΎΠ½Π΅ΠΊΡ‚ΠΎΡ€ΠΈ (MySQL, PostgreSQL, SQLite, MongoDB), машини Π·Π° шаблони, CSS машини, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΠΊΡ€ΠΈΠΏΡ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ ΠΈ систСми Π·Π° оторизация (OAuth), XML Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈ.

Π—Π° Π΄Π° осигури ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° голям Π±Ρ€ΠΎΠΉ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΈ заявки, Node.js ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠΎΠ΄Π΅Π» Π·Π° изпълнСниС Π½Π° асинхронСн ΠΊΠΎΠ΄, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‰Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ ΠΈ дСфиниция Π½Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ Π·Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° мултиплСксиранС Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ са epoll, kqueue, /dev/poll ΠΈ select. Π—Π° мултиплСксиранС Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° 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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€