рд╕рд░реНрд╡реНрд╣рд░-рд╕рд╛рдЗрдб JavaScript Node.js 13.0 рд░рд┐рд▓реАрдЬ

рдЙрдкрд▓рдмреНрдз рд░реАрд▓рд┐рдЭ рдиреЛрдб.рдЬреЗрдПрд╕ 13.0,рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯрдордзреНрдпреЗ рдиреЗрдЯрд╡рд░реНрдХ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, Node.js 12.x рдЪреНрдпрд╛ рдорд╛рдЧреАрд▓ рд╢рд╛рдЦреЗрдЪреЗ рд╕реНрдерд┐рд░реАрдХрд░рдг рдкреВрд░реНрдг рдЭрд╛рд▓реЗ рдЖрд╣реЗ, рдЬреЗ рджреАрд░реНрдШрдХрд╛рд▓реАрди рд╕рдорд░реНрдерди рд░рд┐рд▓реАрдЭрдЪреНрдпрд╛ рд╢реНрд░реЗрдгреАрдордзреНрдпреЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдЬреНрдпрд╛рд╕рд╛рдареА рдЕрджреНрдпрддрдиреЗ 4 рд╡рд░реНрд╖рд╛рдВрд╕рд╛рдареА рдЬрд╛рд░реА рдХреЗрд▓реА рдЬрд╛рддрд╛рдд. Node.js 10.0 рдЪреНрдпрд╛ рдорд╛рдЧреАрд▓ LTS рд╢рд╛рдЦреЗрд╕рд╛рдареА рд╕рдорд░реНрдерди рдПрдкреНрд░рд┐рд▓ 2021 рдкрд░реНрдпрдВрдд рдЖрдгрд┐ рд╢реЗрд╡рдЯрдЪреНрдпрд╛ LTS рд╢рд╛рдЦреЗрдЪреНрдпрд╛ 8.0 рд╕рд╛рдареА рдЬрд╛рдиреЗрд╡рд╛рд░реА 2020 рдкрд░реНрдпрдВрдд рд╕рдорд░реНрдерди рд░рд╛рд╣реАрд▓.

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

  • V8 рдЗрдВрдЬрд┐рди рдЖрд╡реГрддреНрддреАрд╡рд░ рдЕрдкрдбреЗрдЯ рдХреЗрд▓реЗ 7.8, рдЬреЗ рдирд╡реАрди рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рддрдВрддреНрд░ рд╡рд╛рдкрд░рддреЗ, рдСрдмреНрдЬреЗрдХреНрдЯрдЪреЗ рд╡рд┐рдШрдЯрди рд╕реБрдзрд╛рд░рддреЗ, рдореЗрдорд░реА рд╡рд╛рдкрд░ рдХрдореА рдХрд░рддреЗ рдЖрдгрд┐ WebAssembly рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╛рдареА рддрдпрд╛рд░реА рд╡реЗрд│ рдХрдореА рдХрд░рддреЗ;
  • рдЖрдВрддрд░рд░рд╛рд╖реНрдЯреНрд░реАрдпреАрдХрд░рдг рдЖрдгрд┐ рд▓рд╛рдпрдмреНрд░рд░реА-рдЖрдзрд╛рд░рд┐рдд рдпреБрдирд┐рдХреЛрдбрд╕рд╛рдареА рдкреВрд░реНрдг рд╕рдорд░реНрдерди рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ рдЖрд╣реЗ рдЖрдпрд╕реАрдпреВ (рдпреБрдирд┐рдХреЛрдбрд╕рд╛рдареА рдЖрдВрддрд░рд░рд╛рд╖реНрдЯреНрд░реАрдп рдШрдЯрдХ), рдЬреЗ рд╡рд┐рдХрд╕рдХрд╛рдВрдирд╛ рдХреЛрдб рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ рдЖрд╢реНрд╡рд╛рд╕рдХ рд╡рд┐рд╡рд┐рдз рднрд╛рд╖рд╛ рдЖрдгрд┐ рд╕реНрдерд╛рдирд┐рдХрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рд╛. рдкреВрд░реНрдг-icu рдореЙрдбреНрдпреВрд▓ рдЖрддрд╛ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ;
  • API рд╕реНрдерд┐рд░ рдХреЗрд▓реЗ рдХрд╛рдордЧрд╛рд░ рдзрд╛рдЧреЗ, рдкрд░рд╡рд╛рдирдЧреА рджреЗрдгреЗ рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рдЗрд╡реНрд╣реЗрдВрдЯ рд▓реВрдк рддрдпрд╛рд░ рдХрд░рд╛. рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА worker_threads рдореЙрдбреНрдпреВрд▓рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХрд╛рдзрд┐рдХ рд╕рдорд╛рдВрддрд░ рдереНрд░реЗрдбреНрд╕рдордзреНрдпреЗ JavaScript рдХреЛрдб рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. Workers Threads API рд╕рд╛рдареА рд╕реНрдерд┐рд░ рд╕рдорд░реНрдерди рджреЗрдЦреАрд▓ Node.js 12.x рдЪреНрдпрд╛ LTS рд╢рд╛рдЦреЗрдд рдмреЕрдХрдкреЛрд░реНрдЯ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ;
  • рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рдврд╡рд▓реА рдЖрд╣реЗ. рдЖрддрд╛ рдЬрдорд╛рдпрд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдХрд┐рдорд╛рди macOS 10.11 (Xcode 10 рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Python 3 рд╕рд╛рдареА рд╕реБрдзрд╛рд░рд┐рдд рд╕рдорд░реНрдерди. рдЬрд░ рд╕рд┐рд╕реНрдЯреАрдордордзреНрдпреЗ Python 2 рдЖрдгрд┐ Python 3 рджреЛрдиреНрд╣реА рдЕрд╕рддреАрд▓, Python 2 рдЕрдЬреВрдирд╣реА рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдИрд▓, рдкрд░рдВрддреБ рд╕рд┐рд╕реНрдЯреАрдорд╡рд░ рдлрдХреНрдд Python 3 рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реНрдпрд╛рд╡рд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ;
  • HTTP рдкрд╛рд░реНрд╕рд░ (тАЬтАФhttp-parser=legacyтАЭ) рдЪреА рдЬреБрдиреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд╛рдвреВрди рдЯрд╛рдХрдгреНрдпрд╛рдд рдЖрд▓реА рдЖрд╣реЗ. рдХрд╛рдврд▓реЗрд▓реЗ рдХрд┐рдВрд╡рд╛ рдХрд╛рдвреВрди рдЯрд╛рдХрд▓реЗрд▓реЗ рдХреЙрд▓ рдЖрдгрд┐ рдЧреБрдгрдзрд░реНрдо FSWatcher.prototype.start(), ChildProcess._channel, ReadStream рдЖрдгрд┐ WriteStream рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдордзреАрд▓ open() рдкрджреНрдзрдд, request.connection, response.connection, module.createRequireFromPath();
  • рдЦрд╛рд▓реАрд▓ рдмрд╛рд╣реЗрд░ рдЖрд▓рд╛ 13.0.1 рдЕрджреНрдпрддрдирд┐рдд рдХрд░рд╛, рдЬреНрдпрд╛рдиреЗ рдЕрдиреЗрдХ рдмрдЧ рддреНрд╡рд░реАрдд рдирд┐рд░рд╛рдХрд░рдг рдХреЗрд▓реЗ. рд╡рд┐рд╢реЗрд╖рддрдГ, npm 6.12.0 рдЪреА рдЕрд╕рдорд░реНрдерд┐рдд рдЖрд╡реГрддреНрддреА рд╡рд╛рдкрд░рдгреНрдпрд╛рдмрджреНрджрд▓ рдЪреЗрддрд╛рд╡рдгреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдгрд╛рд░реА рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ.

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

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

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

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

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