เบเบฒเบ™เบ›เปˆเบญเบ JavaScript เบ‚เป‰เบฒเบ‡เป€เบŠเบตเบšเป€เบงเบต Node.js 17.0

เบเบฒเบ™เบ›เปˆเบญเบเบ‚เบญเบ‡ Node.js 17.0, เป€เบงเบ—เบตเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเปƒเบ™ JavaScript, เป„เบ”เป‰เป€เบเบตเบ”เบ‚เบถเป‰เบ™. Node.js 17.0 เป€เบ›เบฑเบ™เบชเบฒเบ‚เบฒเบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเบ›เบปเบเบเบฐเบ•เบดเบ”เป‰เบงเบเบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เบˆเบปเบ™เบฎเบญเบ”เป€เบ”เบทเบญเบ™เบกเบดเบ–เบธเบ™เบฒ 2022. เปƒเบ™เบกเบทเป‰เบ‚เป‰เบฒเบ‡เบซเบ™เป‰เบฒ, เบชเบฐเบ–เบฝเบ™เบฅเบฐเบžเบฒเบšเบ‚เบญเบ‡เบชเบฒเบ‚เบฒ Node.js 16 เบˆเบฐเบชเปเบฒเป€เบฅเบฑเบ”, เป€เบŠเบดเปˆเบ‡เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบžเบฒเบš LTS เปเบฅเบฐเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบˆเบปเบ™เบเปˆเบงเบฒเป€เบ”เบทเบญเบ™เป€เบกเบชเบฒ 2024. เบเบฒเบ™เบšเบณเบฅเบธเบ‡เบฎเบฑเบเบชเบฒเบชเบฒเบ‚เบฒ Node.js 14.0 LTS เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบˆเบฐเปเบเปˆเบเบฒเบงเป€เบ–เบดเบ‡เป€เบ”เบทเบญเบ™เป€เบกเบชเบฒ 2023, เปเบฅเบฐเบชเบฒเบ‚เบฒ 12.0 LTS เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบˆเบปเบ™เบฎเบญเบ”เป€เบ”เบทเบญเบ™เป€เบกเบชเบฒ 2022.

เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ•เบปเป‰เบ™เบ•เป:

  • เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ V8 เป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เป€เบ›เบฑเบ™เบฎเบธเปˆเบ™ 9.5.
  • เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเปเบ›เบ‚เบญเบ‡ API เบžเบทเป‰เบ™เบ–เบฒเบ™เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ‚เบญเบ‡ Promise asynchronous computing เป„เบ”เป‰เบชเบทเบšเบ•เปเปˆ. เบ™เบญเบเป€เปœเบทเบญเป„เบ›เบˆเบฒเบ Timers Promises เปเบฅเบฐ Stream Promises APIs เบ—เบตเปˆเบชเบฐเป€เปœเบตเป„เบ›เบเปˆเบญเบ™เปœเป‰เบฒเบ™เบตเป‰, Node.js 17.0 เปเบ™เบฐเบ™เบณ Readline Promise API เบชเบณเบฅเบฑเบšเบเบฒเบ™เบญเปˆเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบ•เปˆเบฅเบฐเปเบ–เบงเป‚เบ”เบเปƒเบŠเป‰เป‚เบกเบ”เบนเบ™ readline. เบ™เบณเป€เบ‚เบปเป‰เบฒ * เป€เบ›เบฑเบ™ readline เบˆเบฒเบ 'node:readline/promises'; import { stdin as input, stdout as output } เบˆเบฒเบ 'เบ‚เบฐเบšเบงเบ™เบเบฒเบ™'; const rl = readline.createInterface({ input, output }); const answer = เบฅเปเบ„เบญเบ rl.question('เป€เบˆเบปเป‰เบฒเบ„เบดเบ”เปเบ™เบงเปƒเบ”เบเบฑเบš Node.js?'); console.log('เบ‚เปเบ‚เบญเบšเปƒเบˆเบ—เปˆเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบ„เบดเบ”เป€เบซเบฑเบ™เบ—เบตเปˆเบกเบตเบ„เบธเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™: ${answer}'); rl.close();
  • เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” OpenSSL เบ—เบตเปˆเบชเบฐเปœเบญเบ‡เปƒเบซเป‰เป„เบ”เป‰เบ–เบทเบเบญเบฑเบšเป€เบ”เบ”เป€เบ›เบฑเบ™เป€เบงเบตเบŠเบฑเปˆเบ™ 3.0 (เป‚เบ”เบเปƒเบŠเป‰ quictls/openssl fork เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบš QUIC protocol เป„เบ”เป‰).
  • เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบชเบฐเบšเบฑเบš Node.js เบ–เบทเบเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™ stack traces เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบขเบธเบ”.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบเปˆเบฒเบงเป€เบ–เบดเบ‡เบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡เบชเบญเบ‡เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเปƒเบ™เบชเบฒเบ‚เบฒเบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡ Node.js (CVE-2021-22959, CVE-2021-22960), เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบ‚เบญเบ‡ HTTP Request Smuggling (HRS) class, เป€เบŠเบดเปˆเบ‡. เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰, เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เบชเบปเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ‚เบญเบ‡เบฅเบนเบเบ„เป‰เบฒเบ—เบตเปˆเบ–เบทเบเบญเบญเบเปเบšเบšเบžเบดเป€เบชเบ”, เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบˆเบฒเบเบœเบนเป‰เปƒเบŠเป‰เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™เบเบฐเบ—เบนเป‰เบ”เบฝเบงเบเบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡ frontend เปเบฅเบฐ backend (เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบฅเบธเบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบฅเบฐเบซเบฑเบ” JavaScript เบ—เบตเปˆเป€เบ›เบฑเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเปƒเบ™เบเบญเบ‡เบ›เบฐเบŠเบธเบกเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบญเบทเปˆเบ™). เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบˆเบฐเบ–เบทเบเป€เบ›เบตเบ”เป€เบœเบตเบเปƒเบ™เบžเบฒเบเบซเบฅเบฑเบ‡, เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบฎเบนเป‰เบงเปˆเบฒเบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เป€เบเบตเบ”เบกเบฒเบˆเบฒเบเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เบŠเบทเปˆ HTTP header เปเบฅเบฐเบˆเปเป‰เบฒเบชเบญเบ‡เป€เบกเบฑเบ”, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เบเบฑเบšเบ„เบทเบ™ carriage เปเบฅเบฐเป€เบชเบฑเป‰เบ™ feed เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เปƒเบ™ parameter block เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบœเปˆเบฒเบ™. เบฎเปˆเบฒเบ‡โ€‹เบเบฒเบโ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เปƒเบ™ chunks เปƒเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบš "chunkedโ€‹"โ€‹. ".

เบˆเบทเปˆเป„เบงเป‰เบงเปˆเบฒเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก Node.js เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบ—เบฑเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบšเปเบฒเบฅเบธเบ‡เบฎเบฑเบเบชเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบงเบฑเบšเปเบฅเบฐเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบฅเบนเบเบ„เป‰เบฒเปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบปเปˆเบงเป„เบ›. เป€เบžเบทเปˆเบญเบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบชเปเบฒเบฅเบฑเบš Node.js, เบเบฒเบ™เป€เบเบฑเบšเบเปเบฒเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡เป‚เบกเบ”เบนเบ™เป„เบ”เป‰เบ–เบทเบเบเบฐเบเบฝเบก, เปƒเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเป‚เบกเบ”เบนเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” HTTP, SMTP, XMPP, DNS, FTP, IMAP, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ POP3 เปเบฅเบฐเบฅเบนเบเบ„เป‰เบฒ, เป‚เบกเบ”เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡. เบเบฑเบšเบเบญเบšเป€เบงเบฑเบšเบ•เปˆเบฒเบ‡เป†, WebSocket เปเบฅเบฐ Ajax handlers , DBMS connectors (MySQL, PostgreSQL, SQLite, MongoDB), templates engines, CSS engines, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ crypto algorithms เปเบฅเบฐเบฅเบฐเบšเบปเบšเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ” (OAuth), XML parsers.

เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ‚เบฐเบซเบ™เบฒเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบ, Node.js เปƒเบŠเป‰เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ” asynchronous เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เป€เบซเบ”เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบšเบฅเบฑเบญเบเปเบฅเบฐเบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เป‚เบ—เบ„เบทเบ™. เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ multiplexing เปเบกเปˆเบ™ epoll, kqueue, /dev/poll, เปเบฅเบฐเป€เบฅเบทเบญเบ. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ multiplexing เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เบซเปเบชเบฐเบซเบกเบธเบ” libuv เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™ add-on เบชเปเบฒเบฅเบฑเบš libev เปƒเบ™เบฅเบฐเบšเบปเบš Unix เปเบฅเบฐ IOCP เปƒเบ™ Windows. เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” libeio เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบชเบฐเบ™เบธเบเป€เบเบตเบเบฐเบ—เบนเป‰, เปเบฅเบฐ c-ares เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบญเบšเบ–เบฒเบก DNS เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบšเปเปˆเบ›เบดเบ”เบเบฑเป‰เบ™. เบเบฒเบ™เป‚เบ—เบฅเบฐเบšเบปเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เปเบกเปˆเบ™เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบžเบฒเบเปƒเบ™เบชเบฐเบ™เบธเบเป€เบเบตเบ‚เบญเบ‡ thread เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เป€เบŠเบฑเปˆเบ™เบ•เบปเบงเบˆเบฑเบšเบชเบฑเบ™เบเบฒเบ™, เป‚เบญเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบ„เบทเบ™เบœเปˆเบฒเบ™เบ—เปเปˆเบ—เบตเปˆเบšเปเปˆเบกเบตเบŠเบทเปˆ (เบ—เปเปˆ). เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ” JavaScript เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ V8 เบ—เบตเปˆเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบ Google (เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, Microsoft เบเปเบฒเบฅเบฑเบ‡เบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเบฐเบšเบฑเบšเบ‚เบญเบ‡ Node.js เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ Chakra-Core).

เบขเบนเปˆเปƒเบ™เบซเบผเบฑเบเบ‚เบญเบ‡เบกเบฑเบ™, Node.js เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks, เปเบฅเบฐเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบซเบ”เบเบฒเบ™ Tcl, เปเบ•เปˆ loop เป€เบซเบ”เบเบฒเบ™เปƒเบ™ Node.js เบ–เบทเบเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰เบˆเบฒเบเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐเบ„เป‰เบฒเบเบ„เบทเบเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เป€เบซเบ”เบเบฒเบ™เปƒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบงเบฑเบšเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบ. เปƒเบ™ browser. เป€เบกเบทเปˆเบญเบ‚เบฝเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบชเปเบฒเบฅเบฑเบš node.js, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบ—เบตเปˆเบ‚เบฑเบšเป€เบ„เบทเปˆเบญเบ™เป‚เบ”เบเป€เบซเบ”เบเบฒเบ™, เบ•เบปเบงเบขเปˆเบฒเบ‡, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ” "var result = db.query("select..");" เบเบฑเบšเบเบฒเบ™เบฅเปเบ–เป‰เบฒเบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปเบฅเบฐเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ•เปเปˆเบกเบฒ, Node.js เปƒเบŠเป‰เบซเบผเบฑเบเบเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” asynchronous, i.e. เบฅเบฐเบซเบฑเบ”เบ–เบทเบเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ "db.query("select..", function (result) {result processing});", เป€เบŠเบดเปˆเบ‡เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบˆเบฐเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เบฅเบฐเบซเบฑเบ”เบ•เปเปˆเป„เบ›เบ—เบฑเบ™เบ—เบต, เปเบฅเบฐเบœเบปเบ™เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบˆเบฐเบ–เบทเบเบ›เบฐเบกเบงเบ™เบœเบปเบ™เป€เบกเบทเปˆเบญเบ‚เปเป‰เบกเบนเบ™เบกเบฒเบฎเบญเบ”.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™