Node.js 17.0, ืคืืืคืืจืื ืืืคืขืืช ืืืฉืืื ืจืฉืช ื-JavaScript, ืฉืืืจืจื. Node.js 17.0 ืืื ืกื ืืฃ ืชืืืื ืจืืื ืฉืืืฉืื ืืงืื ืขืืืื ืื ืขื ืืื ื 2022. ืืืืื ืืงืจืืืื ืชืืฉืื ืืชืืืฆืืืช ืกื ืืฃ Node.js 16, ืฉืืงืื ืกืืืืก LTS ืืืืชืื ืขื ืืคืจืื 2024. ืชืืืืงื ืฉื ืกื ืืฃ LTS ืืงืืื ืฉื Node.js 14.0 ืชืืืฉื ืขื ืืคืจืื 2023, ืืืฉื ื ืฉืืคื ื ืกื ืืฃ LTS 12.0 ืขื ืืคืจืื 2022.
ืฉืืคืืจืื ืขืืงืจืืื:
- ืื ืืข ื-V8 ืขืืืื ืืืจืกื 9.5.
- ืืืืฉืื ืฉื ืืจืกืืืช ืฉื ื-API ืืืกืืกื ืืืืืกืก ืขื ืฉืืืืฉ ืืืืฉืง ืืืืฉืื ืืืกืื ืืจืื ื ืฉื Promise ื ืืฉื. ืื ืืกืฃ ืืืืฉืงื API ืฉื Timers Promises ื- Streams Promises ืฉืืืฆืขื ืืขืืจ, Node.js 17.0 ืืฆืื ืืช ื-Readline Promise API ืืงืจืืืช ื ืชืื ืื ืฉืืจื ืืืจ ืฉืืจื ืืืืฆืขืืช ืืืืื Readline. ืืืืื โโ* ืืชืืจ readline ืืชืื 'node:readline/promises'; ืืืืื โโ{ stdin ืืงืื, stdout ืืคืื } ื'process'; const rl = readline.createInterface({ input, output }); const answer = await rl.question('ืื ืืชื ืืืฉื ืขื Node.js?'); console.log('ืชืืื ืขื ืืืฉืื ืืืฉืื ืฉืื: ${answer}'); rl.close();
- ืกืคืจืืืช OpenSSL ืฉืกืืคืงื ืขืืืื ื ืืืจืกื 3.0 (ื ืขืฉื ืฉืืืืฉ ืืืืื quictls/openssl ืขื ืชืืืื ืืคืจืืืืงืื QUIC ืืืคืขืืช).
- ืืคืฉืจื ืืช ืืฆืืช ืืจืกืช Node.js ืืืขืงืื ืืืกื ืืช ืืืืคืงืื ืืืงืจื ืฉื ืฉืืืืืช ืงืืื ืืืช ืฉืืืจืืืช ืืืืฉืื ืืืคืกืืง.
ืื ืืกืฃ, ื ืืชื ืืืืืืจ ืืช ืืืืืื ืฉื ืฉืชื ื ืงืืืืช ืชืืจืคื ืืกื ืืคืื ืื ืืืืืื ืฉื Node.js (CVE-2021-22959, CVE-2021-22960), ืืืืคืฉืจืืช ืืืฆืข ืืชืงืคืืช "ืืืจืืช ืืงืฉืช HTTP" (HRS), ืืฉืจ ืืืคืฉืจ ืื ื ืืืฉืชืื ืืชืืื ืฉื ืืงืฉืืช ืฉื ืืฉืชืืฉืื ืืืจืื ืืืขืืืืื ืืืืชื ืฉืจืฉืืจ ืืื ื-frontend ื-backend (ืืืืืื, ื ืืชื ืืืื ืืก ืงืื JavaScript ืืืื ื ืืืคืขืื ืฉื ืืฉืชืืฉ ืืืจ). ืคืจืืื ืืืืฉืคื ืืืืฉื, ืื ืืขืช ืขืชื ืื ื ืืืืขืื ืจืง ืฉืืืขืืืช ื ืืจืืืช ืืืืคืื ืฉืืื ืืจืืืืื ืืื ืฉื ืืืชืจืช ื-HTTP ืื ืงืืืชืืื, ืืื ืื ืืืคืื ืฉืื ื ืืชืืื ืืืืจืช ืขืืื ืืืื ืช ืฉืืจื ืืืืืง ืืคืจืืืจืื ืืืฉืืฉ ืืขืช ืฉืืืืจ. ืืืฃ ืืืงืฉื ืืืืงืื ืืืฆื "chunked" "
ื ืืืืจ ืื ื ืืชื ืืืฉืชืืฉ ืืคืืืคืืจืืช 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 ื- select. ืขืืืจ ืจืืืื ืืืืืจืื, ื ืขืฉื ืฉืืืืฉ ืืกืคืจืืืช libuv, ืฉืืื ืชืืกืฃ ืขืืืจ libev ืืืขืจืืืช Unix ื-IOCP ื-Windows. ืกืคืจืืืช libeio ืืฉืืฉืช ืืืฆืืจืช ืืืืจ ืฉืจืฉืืจืื, ื-c-ares ืืฉืืืืช ืืืืฆืืข ืฉืืืืชืืช DNS ืืืฆื ืื ืืืกื. ืื ืงืจืืืืช ืืืขืจืืช ืฉืืืจืืืช ืืืกืืื ืืืืฆืขืืช ืืชืื ืืืืจ ืืืืืื ืืืืืจ ืืื, ืืื ืืืคืื ืืืชืืช, ืืขืืืจืื ืืช ืชืืฆืืช ืืขืืืื ืฉืืื ืืืืจื ืืจื ืฆืื ืืจ ืืื ืฉื (ืฆืื ืืจ). ืืืฆืืข ืงืื JavaScript ืืกืืคืง ืืืืฆืขืืช ืื ืืข V8 ืฉืคืืชื ืขื ืืื ืืืื (ืื ืืกืฃ, ืืืงืจืืกืืคื ืืคืชืืช ืืจืกื ืฉื Node.js ืขื ืื ืืข Chakra-Core).
ืืืกืืกื, Node.js ืืืื ื-Perl AnyEvent, Ruby Event Machine, Python Twisted ืืืืืขืช ืืืจืืขื Tcl, ืื ืืืืืช ืืืืจืืขืื ื-Node.js ืืืกืชืจืช ืืืืคืชื ืืืืื ืืืืคืื ืืืืจืืขืื ืืืคืืืงืฆืืืช ืืื ืืจื ื ืืคืืขืืช ืืืคืืคื. ืืขืช ืืชืืืช ืืืฉืืืื ืขืืืจ node.js, ืขืืื ืืงืืช ืืืฉืืื ืืช ืืคืจืืื ืืกืคืฆืืคืืื ืฉื ืชืื ืืช ืืื ืื ืืืจืืขืื, ืืืฉื, ืืืงืื ืืขืฉืืช "var result = db.query("select..");" ืขื ืืืชื ื ืืกืืื ืืขืืืื ืืขืืืื ืืชืืฆืืืช ืฉืืืืจ ืืื, Node.js ืืฉืชืืฉ ืืขืงืจืื ืฉื ืืืฆืืข ืืกืื ืืจืื ื, ืืืืืจ. ืืงืื ืืืคื ื-"db.query("select..", function (result) {result processing});", ืฉืื ืืฉืืืื ืชืขืืืจ ืืืืืืช ืืงืื ื ืืกืฃ, ืืชืืฆืืช ืืฉืืืืชื ืชืขืืื ืขื ืืืขืช ืื ืชืื ืื.
ืืงืืจ: OpenNet.ru