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

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо Node.js 17.0 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред Node.js 17.0 рдирд┐рдпрдорд┐рдд рд╕рдорд░реНрдерди рд╢рд╛рдЦрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдЬрд┐рд╕реЗ рдЬреВрди 2022 рддрдХ рдЕрдкрдбреЗрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗред рдЖрдиреЗ рд╡рд╛рд▓реЗ рджрд┐рдиреЛрдВ рдореЗрдВ, Node.js 16 рд╢рд╛рдЦрд╛ рдХреЛ рд╕реНрдерд┐рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, LTS рдХрд╛ рджрд░реНрдЬрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ рдФрд░ рдЕрдкреНрд░реИрд▓ 2024 рддрдХ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкрд┐рдЫрд▓реА LTS рд╢рд╛рдЦрд╛ Node.js 14.0 рдЕрдкреНрд░реИрд▓ 2023 рддрдХ рдФрд░ рдкрд┐рдЫрд▓реА LTS рд╢рд╛рдЦрд╛ 12.0 рдЕрдкреНрд░реИрд▓ 2022 рддрдХ рд╕рдорд░реНрдерд┐рдд рд░рд╣реЗрдЧреАред

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

  • V8 рдЗрдВрдЬрди рдХреЛ рд╕рдВрд╕реНрдХрд░рдг 9.5 рдореЗрдВ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • рдкреНрд░реЙрдорд┐рд╕ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХрдВрдкреНрдпреВрдЯреЗрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХреЛрд░ API рд╡реЗрд░рд┐рдПрдВрдЯ рдХрд╛ рдирд┐рд░рдВрддрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред рдкрд╣рд▓реЗ рд╕реЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЯрд╛рдЗрдорд░ рдкреНрд░реЙрдорд┐рд╕ рдФрд░ рд╕реНрдЯреНрд░реАрдо рдкреНрд░реЙрдорд┐рд╕ API рдХреЗ рдЕрд▓рд╛рд╡рд╛, Node.js 17.0 readline рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рд▓рд╛рдЗрди рджрд░ рд▓рд╛рдЗрди рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП Readline Promise API рдкреЗрд╢ рдХрд░рддрд╛ рд╣реИред import * as readline from 'node:readline/promises'; import { stdin as input, stdout as output } from 'process'; const rl = readline.createInterface({ input, output }); const answer = await rl.question('What do you think of Node.js?'); console.log('Thank you for your precious feedback: ${answer}'); rl.close();
  • рд╕рдореНрдорд┐рд▓рд┐рдд OpenSSL рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕рдВрд╕реНрдХрд░рдг 3.0 рдореЗрдВ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рдорд░реНрдерди рд╕рдХреНрд╖рдо рдХреЗ рд╕рд╛рде quictls/openssl рдлреЛрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)ред
  • рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХрд┐ Node.js рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛ, рдЬреЛ рддрдм рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ, рдЬрд┐рдирдХреЗ рдХрд╛рд░рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╣рдо рд╡рд░реНрддрдорд╛рди Node.js рд╢рд╛рдЦрд╛рдУрдВ (CVE-2021-22959, CVE-2021-22960) рдореЗрдВ рджреЛ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рдЙрдиреНрдореВрд▓рди рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ "HTTP рдЕрдиреБрд░реЛрдз рддрд╕реНрдХрд░реА" (HRS) рд╡рд░реНрдЧ рдХреЗ рд╣рдорд▓реЛрдВ рдХреЛ рдЕрдВрдЬрд╛рдо рджреЗрдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рднреЗрдЬрдХрд░, рдлреНрд░рдВрдЯрдПрдВрдб рдФрд░ рдмреИрдХрдПрдВрдб рдХреЗ рдмреАрдЪ рдПрдХ рд╣реА рдкреНрд░рд╡рд╛рд╣ рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдШреБрд╕рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рддреНрд░ рдореЗрдВ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ)ред рд╡рд┐рд╡рд░рдг рдмрд╛рдж рдореЗрдВ рдкреНрд░рдХрдЯ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛рдПрдБ HTTP рд╣реЗрдбрд░ рдирд╛рдо рдФрд░ рдХреЛрд▓рди рдХреЗ рдмреАрдЪ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреА рдЧрд▓рдд рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИрдВ, рд╕рд╛рде рд╣реА "рдЪрдВрдХреНрдб" рдореЛрдб рдореЗрдВ рднрд╛рдЧреЛрдВ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдирд┐рдХрд╛рдп рдХреЛ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдмреНрд▓реЙрдХ рдореЗрдВ рдХреИрд░рд┐рдЬ рд░рд┐рдЯрд░реНрди рдФрд░ рд▓рд╛рдЗрди рдлреАрдб рд╡рд░реНрдгреЛрдВ рдХреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИрдВред

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

рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, Node.js рдиреЙрди-рдмреНрд▓реЙрдХрд┐рдВрдЧ рдЗрд╡реЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдФрд░ рдХреЙрд▓рдмреИрдХ рд╣реИрдВрдбрд▓рд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╕рдорд░реНрдерд┐рдд рдХрдиреЗрдХреНрд╢рди рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕рд┐рдВрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ epoll, kqueue, /dev/poll рдФрд░ select рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдХрдиреЗрдХреНрд╢рди рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП libuv рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ Unix рд╕рд┐рд╕реНрдЯрдо рдкрд░ libev рдФрд░ IOCP рдкрд░ IOCP рдХрд╛ рдПрдХ рд╕реБрдкрд░рд╕реЗрдЯ рд╣реИред Windowslibeio рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдереНрд░реЗрдб рдкреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ c-ares рдХреЛ рдиреЙрди-рдмреНрд▓реЙрдХрд┐рдВрдЧ рдореЛрдб рдореЗрдВ DNS рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рднреА рдмреНрд▓реЙрдХрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдереНрд░реЗрдб рдкреВрд▓ рдХреЗ рднреАрддрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░, рд╕рд┐рдЧреНрдирд▓ рд╣реИрдВрдбрд▓рд░ рдХреА рддрд░рд╣, рдПрдХ рдЕрдирд╛рдо рдкрд╛рдЗрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдкрд░рд┐рдгрд╛рдо рд╡рд╛рдкрд╕ рднреЗрдЬрддреЗ рд╣реИрдВред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрди Google рдХреЗ V8 рдЗрдВрдЬрди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (Microsoft рднреА Chakra-Core рдЗрдВрдЬрди рдХреЗ рд╕рд╛рде Node.js рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ)ред

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

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

DDoS рд╕реБрд░рдХреНрд╖рд╛, VPS VDS рд╕рд░реНрд╡рд░ рд╡рд╛рд▓реА рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдЦрд░реАрджреЗрдВ ЁЯФе рдбреАрдбреАрдУрдПрд╕ рд╕реБрд░рдХреНрд╖рд╛, рд╡реАрдкреАрдПрд╕ рдФрд░ рд╡реАрдбреАрдПрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдЦрд░реАрджреЗрдВ | ProHoster