рд╕рд░реНрднрд░-рд╕рд╛рдЗрдб JavaScript Node.js 14.0 рд░рд┐рд▓реАрдЬ

рднрдпреЛ рд░рд┐рд▓реАрдЬ Node.js резред,рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдЪрд▓рд╛рдЙрдирдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдорд╣рд░реВред Node.js 14.0 рдПрдХ рджреАрд░реНрдШрдХрд╛рд▓реАрди рд╕рдорд░реНрдерди рд╢рд╛рдЦрд╛ рд╣реЛ, рддрд░ рдпреЛ рд╕реНрдерд┐рддрд┐ рдЕрдХреНрдЯреЛрдмрд░ рдорд╛ рдорд╛рддреНрд░, рд╕реНрдерд┐рд░реАрдХрд░рдг рдкрдЫрд┐ рддреЛрдХрд┐рдиреЗрдЫред Node.js 14.0 рд╕рдорд░реНрдерд┐рдд рд╣реБрдиреЗрдЫ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░рд┐рдиреЗрдЫ рдЕрдкреНрд░рд┐рд▓ 2023 рд╕рдореНрдоред Node.js 12.0 рдХреЛ рдЕрдШрд┐рд▓реНрд▓реЛ LTS рд╢рд╛рдЦрд╛рдХреЛ рдорд░реНрдордд рд╕рдореНрднрд╛рд░ рдЕрдкреНрд░рд┐рд▓ 2022 рд╕рдореНрдо рд░ рдЕрдиреНрддрд┐рдо LTS рд╢рд╛рдЦрд╛ 10.0 рдЕрдШрд┐рдХреЛ рд╡рд░реНрд╖ рдЕрдкреНрд░рд┐рд▓ 2021 рд╕рдореНрдо рд░рд╣рдиреЗрдЫред 13.x рд╕реНрдЯреЗрдЬрд┐рдЩ рд╢рд╛рдЦрд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдпрд╕ рд╡рд░реНрд╖рдХреЛ рдЬреБрдирдорд╛ рд╕рдорд╛рдкреНрдд рд╣реБрдиреЗрдЫред

рдореБрдЦреНрдп рд╕реБрдзрд╛рд░рд╣рд░реВ:

  • рдЙрдбрд╛рдирдорд╛ рд╡рд╛ рдирд┐рд╢реНрдЪрд┐рдд рдШрдЯрдирд╛рд╣рд░реВрдХреЛ рдШрдЯрдирд╛рдорд╛ рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рд╕реНрдерд┐рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ рдирд┐рджрд╛рди рд░рд┐рдкреЛрд░реНрдЯрд╣рд░реВ, рдЬрд╕рд▓реЗ рдШрдЯрдирд╛рд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫ рдЬрд╕рд▓реЗ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рдирд┐рджрд╛рди рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрджрдЫ рдЬрд╕реНрддреИ рдХреНрд░реНрдпрд╛рд╕рд╣рд░реВ, рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рдЧрд┐рд░рд╛рд╡рдЯ, рдореЗрдореЛрд░реА рд▓реАрдХ, рднрд╛рд░реА CPU рд▓реЛрдб, рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рддреНрд░реБрдЯрд┐ рдЖрдЙрдЯрдкреБрдЯ, рдЖрджрд┐ред
  • рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ API рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ Async рд╕реНрдерд╛рдиреАрдп рднрдгреНрдбрд╛рд░рдг AsyncLocalStorage рд╡рд░реНрдЧрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╕рд╛рде, рдЬреБрди рдХрд▓рдмреНрдпрд╛рдХ рдХрд▓ рд░ рдкреНрд░рддрд┐рдЬреНрдЮрд╛рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВрд╕рдБрдЧ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдЕрд╡рд╕реНрдерд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред AsyncLocalStorage рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЬрдм рд╡реЗрдм рдЕрдиреБрд░реЛрдз рдкреНрд░рд╢реЛрдзрди рднрдЗрд░рд╣реЗрдХреЛ рдЫ, рдЕрдиреНрдп рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рдереНрд░реЗрдб-рд╕реНрдерд╛рдиреАрдп рднрдгреНрдбрд╛рд░рдгрдХреЛ рд╕рдореНрдЭрдирд╛ рджрд┐рд▓рд╛рдЙрдБрдЫред
  • рд▓реЛрдб рдЧрд░реНрджрд╛ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕реБрд╡рд┐рдзрд╛ рдмрд╛рд░реЗ рдЪреЗрддрд╛рд╡рдиреА рд╕рдиреНрджреЗрд╢ рд╣рдЯрд╛рдЗрдпреЛ рдореЛрдбреНрдпреБрд▓рд╣рд░реВ ECMAScript реирежрезред рдЬрдбрд╛рди рд░ рдЖрдпрд╛рдд рд░ рдирд┐рд░реНрдпрд╛рдд рдмрдпрд╛рди рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдирд┐рд░реНрдпрд╛рддред рдПрдХреИ рд╕рдордпрдорд╛, ESM рдореЛрдбреНрдпреБрд▓рд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрдлреИ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░рд╣рдиреНрдЫред
  • V8 рдЗрдиреНрдЬрд┐рди рд╕рдВрд╕реНрдХрд░рдгрдорд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдпреЛ 8.1 (1, 2, 3), рдЬрд╕рдорд╛ рдирдпрд╛рдБ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд╣рд░реВ рд░ рдирдпрд╛рдБ рддрд╛рд░реНрдХрд┐рдХ рдХрдиреНрдЯреЗрдиреЗрд╕рди рдЕрдкрд░реЗрдЯрд░ "???" рдЬрд╕реНрддрд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред (рдмрд╛рдпрд╛рдБ рдЕрдкрд░реЗрдиреНрдб NULL рд╡рд╛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рднрдПрдорд╛ рджрд╛рдпрд╛рдБ рдЕрдкрд░реЗрдиреНрдб рдлрд░реНрдХрд╛рдЙрдБрдЫ, рд░ рдпрд╕рдХреЛ рд╡рд┐рдкрд░реАрдд), "?ред" рдЕрдкрд░реЗрдЯрд░ред рд╕рдореНрдкреВрд░реНрдг рдЧреБрдг рд╡рд╛ рдХрд▓рд╣рд░реВрдХреЛ рдПрдХ рдкрдЯрдХ рдЬрд╛рдБрдЪрдХреЛ рд▓рд╛рдЧрд┐ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, "db?.user?.name?.length" рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдЬрд╛рдБрдЪрд╣рд░реВ рдмрд┐рдирд╛), рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдирд╛рдорд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ Intl.DisplayName рд╡рд┐рдзрд┐, рдЖрджрд┐ред
  • рд╕реНрдЯреНрд░рд┐рдореНрд╕ рдПрдкреАрдЖрдИ рдХреЛ рдПрдХрд░реВрдкрддрд╛ рд╕реБрдзрд╛рд░ рдЧрд░реНрди рд░ Node.js рдХреЛ рдЖрдзрд╛рд░рднреВрдд рднрд╛рдЧрд╣рд░реБ рдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдорд╛ рднрд┐рдиреНрдирддрд╛ рд╣рдЯрд╛рдЙрди рдХреЛ рд▓рд╛рдЧреА, рд╕реНрдЯреНрд░рд┐рдореНрд╕ API рдХреЛ рдПрдХ рд╕рдВрд╢реЛрдзрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, http.OutgoingMessage рдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ stream.Writable рдХреЛ рдирдЬрд┐рдХ рдЫ, рд░ net.Socket stream.Duplex рдЬрд╕реНрддреИ рдЫред AutoDestroy рд╡рд┐рдХрд▓реНрдк рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ "true" рдорд╛ рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рдХреЛ рдЕрд░реНрде рдкреВрд░рд╛ рднрдПрдкрдЫрд┐ "_destroy" рд▓рд╛рдИ рдХрд▓ рдЧрд░реНрдиреБ рд╣реЛред
  • рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ API рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ рд╡рд╛рд╕реА (WebAssembly рдкреНрд░рдгрд╛рд▓реА рдЗрдиреНрдЯрд░рдлреЗрд╕), рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдорд╕рдБрдЧ рдкреНрд░рддреНрдпрдХреНрд╖ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВ рдЙрдкрд▓рдмреНрдз рдЧрд░рд╛рдЙрдиреЗ (рдлрд╛рдЗрд▓, рд╕рдХреЗрдЯ, рдЖрджрд┐рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ POSIX API)ред
  • рдХреЛ рд▓рд╛рдЧрд┐ рдмрдвреНрджреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реБ рдиреНрдпреВрдирддрдо рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рдХрдореНрдкрд╛рдЗрд▓рд░ рд░ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдорд╣рд░реВ: macOS 10.13 (рдЙрдЪреНрдЪ рд╕рд┐рдПрд░рд╛), GCC 6, рд╡рд┐рдиреНрдбреЛрдЬ рдирдпрд╛рдБ 7/2008R2.

рд╣рд╛рдореАрд▓рд╛рдИ рдпрд╛рдж рдЧрд░реМрдВ рдХрд┐ 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, рдЬреБрди рдПрдХ рд╕реБрдкрд░рд╕реНрдЯреНрд░рдХреНрдЪрд░ рд╣реЛ рдореБрдХреНрддрд┐ рдпреБрдирд┐рдХреНрд╕ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рд░ рд╡рд┐рдиреНрдбреЛрдЬрдорд╛ IOCP рдорд╛рдерд┐ред рдереНрд░реЗрдб рдкреВрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ libeio, рдЧреИрд░-рдмреНрд▓рдХрд┐рдЩ рдореЛрдбрдорд╛ DNS рдкреНрд░рд╢реНрдирд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рдПрдХреАрдХреГрдд рдЧрд░рд┐рдПрдХреЛ рдЫ c-aresред рд╕рдмреИ рдкреНрд░рдгрд╛рд▓реА рдХрд▓рд╣рд░реВ рдЬрд╕рд▓реЗ рдмреНрд▓рдХрд┐рдЩ рдирд┐рдореНрддреНрдпрд╛рдЙрдБрдЫ рдереНрд░реЗрдб рдкреВрд▓ рднрд┐рддреНрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдиреНрдЫ рд░ рддреНрдпрд╕рдкрдЫрд┐, рд╕рд┐рдЧреНрдирд▓ рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВ рдЬрд╕реНрддреИ, рддрд┐рдиреАрд╣рд░реВрдХреЛ рдХрд╛рдордХреЛ рдирддрд┐рдЬрд╛ рдЕрдЬреНрдЮрд╛рдд рдкрд╛рдЗрдк рдорд╛рд░реНрдлрдд рдлрд┐рд░реНрддрд╛ рдкрд╛рд╕ рдЧрд░реНрджрдЫред рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдбрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧреБрдЧрд▓ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдЗрдиреНрдЬрд┐рдирдХреЛ рдкреНрд░рдпреЛрдЧ рдорд╛рд░реНрдлрдд рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ V8 (рдЕрддрд┐рд░рд┐рдХреНрдд, рдорд╛рдЗрдХреНрд░реЛрд╕рдлреНрдЯрд▓реЗ рдЪрдХреНрд░-рдХреЛрд░ рдЗрдиреНрдЬрд┐рдирдХреЛ рд╕рд╛рде Node.js рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рд╡рд┐рдХрд╛рд╕ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫ)ред

рдпрд╕рдХреЛ рдореВрд▓ рдорд╛, Node.js рдлреНрд░реЗрдорд╡рд░реНрдХ рдЬрд╕реНрддреИ рдЫ Perl AnyEvent, рд░реБрдмреА рдШрдЯрдирд╛ рдореЗрд╕рд┐рди, рдкрд╛рдЗрдерди рдЯреНрд╡рд┐рд╕реНрдЯреЗрдб ╨╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди Tcl рдорд╛ рдШрдЯрдирд╛рд╣рд░реВ, рддрд░ Node.js рдорд╛ рдШрдЯрдирд╛ рд▓реБрдк рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдмрд╛рдЯ рд▓реБрдХреЗрдХреЛ рдЫ рд░ рдмреНрд░рд╛рдЙрдЬрд░рдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧрдорд╛ рдШрдЯрдирд╛ рд╣реНрдпрд╛рдиреНрдбрд▓рд┐рдЩ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫред node.js рдХрд╛ рд▓рд╛рдЧрд┐ рдЖрд╡реЗрджрдирд╣рд░реВ рд▓реЗрдЦреНрджрд╛, рдШрдЯрдирд╛-рд╕рдВрдЪрд╛рд▓рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рд╣рд░реВрд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, "var result = db.query("select..");" рдЧрд░реНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ред рдХрд╛рдордХреЛ рд╕рдорд╛рдкрди рд░ рдкрд░рд┐рдгрд╛рдорд╣рд░реВрдХреЛ рдкрдЫрд┐рдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрдБрджреИ, Node.js рд▓реЗ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╕рд┐рджреНрдзрд╛рдиреНрдд рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, рдЕрд░реНрдерд╛рддреНред рдХреЛрдбрд▓рд╛рдИ "db.query("select..", function (рдирддрд┐рдЬрд╛) {рдирддрд┐рдЬрд╛ рдкреНрд░рд╢реЛрдзрди});" рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рдорд╛ рдирд┐рдпрдиреНрддреНрд░рдг рддреБрд░реБрдиреНрддреИ рдЕрд░реНрдХреЛ рдХреЛрдбрдорд╛ рдЬрд╛рдиреЗрдЫ, рд░ рдбрд╛рдЯрд╛ рдЖрдЗрдкреБрдЧреНрджрд╛ рдХреНрд╡реЗрд░реА рдкрд░рд┐рдгрд╛рдорд▓рд╛рдИ рдкреНрд░рд╢реЛрдзрди рдЧрд░рд┐рдиреЗрдЫред ред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди