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

рдЙрдкрд▓рдмреНрдз рдЫ рд░рд┐рд▓реАрдЬ Node.js резред,рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдЪрд▓рд╛рдЙрдирдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдорд╣рд░реВред рдПрдХреИ рд╕рдордпрдорд╛, 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 рдЕрдЭреИ рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рддрд░ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдкрд╛рдЗрдерди 3 рдорд╛рддреНрд░ рд╕реНрдерд╛рдкрдирд╛ рд╣реБрдБрджрд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдердкрд┐рдПрдХреЛ рдЫ;
  • HTTP рдкрд╛рд░реНрд╕рд░ (тАЬтАФhttp-parser=legacyтАЭ) рдХреЛ рдкреБрд░рд╛рдиреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣рдЯрд╛рдЗрдПрдХреЛ рдЫред рд╣рдЯрд╛рдЗрдпреЛ рд╡рд╛ рд╣рдЯрд╛рдЗрдПрдХреЛ рдХрд▓ рд░ рдЧреБрдгрд╣рд░реВ FSWatcher.prototype.start(), ChildProcess._channel, open() рд╡рд┐рдзрд┐ ReadStream рд░ WriteStream рд╡рд╕реНрддреБрд╣рд░реВрдорд╛, 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) рдорд╛ рдЬрдбрд╛рдирдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╕рд╛рде рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред , 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

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