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 asynchronous ααΆαααααα ααααααααΈααΎαααααα·ααΈ Timers Promises and Stream Promises APIs αααααΆααααααααΌαααΈαα»α Node.js 17.0 ααααΆα Readline Promise API αααααΆααααΆαα’αΆααααααΆαααα·ααααααααΆααααααΆαααααααααΎαααΌαα»αα’αΆααααααΆααα ααΆαα αΌα * ααΆ readline ααΈ 'node:readline/promises'; ααΆαα αΌα { stdin as input, stdout as output } ααΈ 'process'; const rl = readline.createInterface({ input, output }); const answer = αααα αΆα 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 Request Smugglingβ (HRS) ααα α’αα»ααααΆαα±ααααΎααααα αΌααα αααα»αααααΉαααΆαααααααΎααααα’αααααααΎααααΆαααααααααααααααΆαααααΎαααΆααααα»ααααααααα‘αΆαααΌα ααααΆαααΆααααααααΆααα»α αα·ααααααααΆαααααα (α§ααΆα ααα ααΌα JavaScript ααααΆααΆαα’αΆα ααααΌαααΆααααα αΌααα αααα»αααααααααα’αααααααΎαααααααα)α ααααααΆααααα’α·αααΉαααααΌαααΆααααα αΆααα αααααααα ααα»αααααααααΆαααααααα ααΎαααααΆααααααΉαααΆαααα αΆααΊαααααΆαααααΈααΆαααααααααααα·αααααΉαααααΌαααα ααααααααΆαααααα HTTP header αα·α colon ααααΌα ααΆααΆαααααααααααααααααααΆαα carriage return αα·α line feed character αα αααα»ααααα»ααααΆαααΆαααααααααααααΎαα ααααααααΌαα αα½ααααΎααΆααααααα αααα»ααααα "ααααΆαα" "
α’αα»ααααΆαα±ααααΎαααααΉαααΆαααα·ααΆ Node.js α’αΆα ααααΌαααΆαααααΎααΆαααααααΆααααΆαααΆαααααααααααΆααααΆαααΈααααααααααα·ααΈααα ααααα αα·ααααααΆαααααααΎααααααα·ααΈαααααΆααααΆαααΈαααααα αα·ααααΆαααΈαααααααααΆα ααΎααααΈαααααΈααα»αααΆααααααααα·ααΈαααααΆαα Node.js ααΆααααααΌααααΌαα»ααααααα½αααααΌαααΆααααα α ααααααα»ααααα’αααα’αΆα ααααααααααΌαα»αααΆαα½αααΉαααΆαα’αα»αααα HTTP, SMTP, XMPP, DNS, FTP, IMAP, αααΆαααΈααα POP3 αα·ααααΆαααΈαααααα αααΌαα»ααααααΆααααΆααα½ααααα αΌα ααΆαα½αααΉαααααααααααααααΆααααααα WebSocket αα·α Ajax handlers α§αααααααααΆαααα DBMS (MySQL, PostgreSQL, SQLite, MongoDB), αααΆαααΈαααααΌ, αααΆαααΈα CSS, ααΆαα’αα»αααααααα½ααααααααΆαααααΈα αα·αααααααααα’αα»ααααΆα (OAuth), α§αααααααα XML α
ααΎααααΈααΆααΆααΆαααΌαααααΎαααΆαααααααΎααααααααΆαα½αα ααα½ααα Node.js ααααΎααααΌααααα·ααααα·ααΌαα’ααααΆααααααα’ααααΎααΆααααααααΆαααααΉαααα·ααΆαααααααα·αααΆααΆαα αα·ααα·ααααααααααααα·ααΈαααααααΆαααΆαα α αααα‘αααααα·αα αα·ααΈααΆααααααααααΆαααααααααΆααααΆααααααΆαααα α»αα»αααΊ epoll, kqueue, /dev/poll αα·αααααΎαααΎαα αααααΆααααΆααααααΆαααα α»αα»α αααααΆααα libuv ααααΌαααΆαααααΎ αααααΆαααααα·ααΈαααααααααααΆαα libev αα ααΎαααααααα Unix αα·α IOCP αα ααΎ Windows α αααααΆααα libeio ααααΌαααΆαααααΎααΎααααΈαααααΎαααααα»ααααααααα‘αΆα α αΎα c-ares ααααΌαααΆααα½ααααα αΌαααΎααααΈα’αα»αααααααα½α DNS αα αααα»ααααααα·ααααααααΆααα ααΆαα α ααΆαααααααααααΆααα’ααααααααααΆαα±ααααΆαααΆααααααααΆααααααΌαααΆαααααα·ααααα·αα ααΆααααα»αααααα»ααααααααα‘αΆα α αΎααααααΆαααα ααΌα ααΆα§ααααααααααααΆααααααΆ αααααααααααααααΆαααΆααααααα½ααααααα·αααΆααααααααααααααααΆαααααα (ααααα)α ααΆαααααα·ααααα·ααΌα JavaScript ααααΌαααΆααααααααΌαααΆααααααΆαααααΎααααΆαααααΆαααΈα V8 ααααααααΎαα‘αΎαααα Google (ααΎαααΈααααα ααα Microsoft αααα»ααααααΎααααα Node.js ααΆαα½αααΉααααΆαααΈα Chakra-Core)α
αα
ααααΌαααααααΆ Node.js ααΊαααααααα
ααΉα Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks αα·αααΆαα’αα»ααααααααΉαααα·ααΆααα Tcl ααα»ααααααααα·ααα»αααααΉαααα·ααΆααααα
αααα»α Node.js ααααΌαααΆαααΆααααΈα’αααα’αα·αααααα α αΎαααααααααΉαααΆααααααααΆαααααΉαααα·ααΆααααα
αααα»ααααααα·ααΈααα αααααααααααα»αααααΎαααΆαα αα
αααα»ααααααα·ααΈαα»αααα αα
αααααααααααααα·ααΈαααααΆαα node.js α’αααααααΌααα·α
αΆαααΆααΈααΆαααΆααααΆααααααΆαααααααααααα·ααΈααααααα»ααααααααΉαααα·ααΆααα α§ααΆα ααα αααα½αα±ααααΆαααααΎ "var result = db.query("select..");" ααΆαα½αααΉαααΆααααα
αΆαααΆααααα
ααααΆαααΆα αα·αααααΎαααΆαααααααααΆαααααααααΆαα Node.js ααααΎαααααΆαααααααΆαααααα·ααααα·α’ααααΆα αααααΊα§α ααΌαααααΌαααΆαααααααααα
ααΆ "db.query("select..", function (result) {result processing});" αααααΆααααααααααααΉααααααΌαααααΆαααα
ααΆαααααααΌααααααα α αΎααααααααααα½αααΉαααααΌαααΆαααααΎαααΆααα
αααααααα·αααααααααααα
ααααα: opennet.ru