Server-side JavaScript platform Node.js 21.0 iripo

Node.js 21.0 yakaburitswa, chikuva chekushandisa network application muJavaScript. Bazi reNode.js 21.0 richatsigirwa kwemwedzi mitanhatu. Mumazuva anouya, kudzikamiswa kwebazi reNode.js 6 kuchapedzwa, iyo ichagamuchira LTS mamiriro uye ichatsigirwa kusvika Kubvumbi 20. Kuchengetwa kwebazi reLTS rapfuura reNode.js 2026 richagara kusvika Gunyana 18.0, uye gore rakapfuura rekupedzisira LTS bazi 2025 kusvika Kubvumbi 16.0.

Mabhindauko makuru:

  • Iyo Fetch API yakanzi yakagadzikana, yakagadzirirwa kurodha zviwanikwa pamusoro petiweki uye kurerutsa kunyorwa kwepasi rose JavaScript kodhi yakakodzera kushanda pane sevha uye mativi evatengi. Kuitwa kunoenderana nekodhi kubva kuHTTP/1.1 undici mutengi uye iri padyo sezvinobvira kune yakafanana API yakapihwa mumabhurawuza. Iyo API inosanganisira iyo yekutora () nzira uye Headers zvinhu. Chikumbiro uye Mhinduro, inomiririra misoro yeHTTP, chikumbiro uye mhinduro. const res = kumirira kutora('https://nodejs.org/api/documentation.json'); kana (res.ok) {const data = wakamirira res.json (); console.log(data); }
  • Tsigiro yeWebStreams API, iyo inopa mukana kune data hova inogamuchirwa pamusoro petiweki, yakagadzikana. Iyo API inoita kuti zvikwanise kuwedzera vako vanobata vanoshanda nedata sezvo ruzivo runosvika pane network, pasina kumirira kuti faira rese ritorwe. Zvinhu zvinowanikwa muNode.js zvinosanganisira ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream, uye DecompressionStream.
  • Yakawedzera kuyedza kuita kweWebSocket mutengi, inoenderana nemabhurawuza. Kugonesa rutsigiro rweWebSocket, mureza we "-experimental-websocket" unopihwa.
  • Yakawedzera nzira yekuyedza yekushandisa iyo yekumisikidzwa kweJavaScript modules ESM (ECMAScript Modules, inoshandiswa mumamodule emabhurawuza) pachinzvimbo cheCommonJS (chaiyo kuNode.js). Shanduko haikanganisi mamodule ane manyorerwo anotsanangurwa zvakajeka kuburikidza ne "type" munda mu package.json, inotsanangurwa kuburikidza ne "--input-type" mureza, kana iri pachena nekuda kwekuwedzera kwefaira (.mjs yeESM, .cjs yeCommonJS). Zvisinei, ma modules asina kunyatsotsanangurwa seCommonJS (somuenzaniso, ane ".js" extension) achabatwa seESM modules apo nzira itsva inobvumira. Kuti uvhure marongero matsva emodule, mureza we "-experimental-default-type" wapihwa.
  • Injini yeV8 yakagadziridzwa kushanduro 11.8, yakashandiswa muChromium 118, iyo ikozvino inotsigira nzira yeArrayBuffer.prototype.transfer, kukwanisa kuunganidza mapoka (groupBy method) uye WebAssembly mirayiridzo yekugadzirisa zvigadziridzo (i32.add, i32.sub, i32.mul, i64 .add, i64.sub uye i64.mul).
  • Tsigiro yeglobalPreload handler yakamiswa, mukuda kunyoresa uye kutanga mafoni kugadzirisa mamodule.
  • A "flush" sarudzo yakawedzerwa kune fs.writeFile basa rekumanikidza data kuti ibudiswe kudhiraivha mushure mekunyora kwega kwega kushanda.
  • Kuvandudzwa kwekuita kwekodhi ine chekuita ne URL parsing, tora API, hova, node:fs, uye HTTP.
  • Yakawedzerwa global navigator chinhu. Semuenzaniso, kuti uwane data pamusoro pehuwandu hweCPU cores, unogona kushandisa navigator.hardwareConcurrency pfuma.
  • Mune "-test" parameter, tsigiro yemasiki eglob yakawedzerwa pakusarudza bvunzo dzekuita (semuenzaniso, unogona kudoma "-test **/*.test.js.").
  • Iyo bundled package maneja npm 10.2.0 uye iyo llhttp 9.1.2 parser yakagadziridzwa.
  • Tsigiro yeVisual Studio 2019 uye shanduro dzemacOS dzakakura kupfuura 11.0 dzakamiswa.

Iyo Node.js chikuva inogona kushandiswa ese ari maviri sevha-padivi rutsigiro rweWebhu maapplication, uye kugadzira akajairwa mutengi uye server network zvirongwa. Kuti uwedzere kushanda kwezvikumbiro zveNode.js, muunganidzwa wakakura wemamodule wakagadzirirwa, umo iwe unogona kuwana mamodule nekushandiswa kweHTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 maseva uye vatengi, ma module ekubatanidza. ine akasiyana webhu masisitimu, WebSocket uye Ajax vanobata, zvinobatanidza kuDBMS (MySQL, PostgreSQL, SQLite, MongoDB), template injini, CSS injini, kuitiswa kwecryptographic algorithms uye mvumo masisitimu (OAuth), XML parsers.

Kuti ive nechokwadi chekugadziriswa kwenhamba huru yezvikumbiro zvakafanana, Node.js inoshandisa asynchronous code execution modhi yakavakirwa pane isiri-kuvhara chiitiko kubata uye tsananguro yevanobata callback. Nzira dzinotsigirwa dzekubatanidza kuwanda ndeye epoll, kqueue, /dev/poll, uye sarudza. Nekubatanidza kuwanda, raibhurari ye libuv inoshandiswa, inova yekuwedzera ye libev pane Unix masisitimu uye IOCP paWindows. Raibhurari yelibeio inoshandiswa kugadzira dziva reshinda, uye c-ares inosanganiswa kuita mibvunzo yeDNS mune isiri-yekuvharisa mode. Yese inofona system inokonzeresa kuvharika inoitwa mukati medziva reshinda uyezve, sevabati vechiratidzo, vanoendesa mhedzisiro yebasa ravo kumashure kuburikidza nepombi isina zita (pombi). Kuitwa kweJavaScript code kunopiwa kuburikidza nekushandiswa kweV8 injini yakagadzirwa neGoogle (nekuwedzera, Microsoft iri kugadzira shanduro yeNode.js neChakra-Core injini).

Pakati payo, Node.js yakafanana nePerl AnyEvent, Ruby Event Machine, Python Twisted frameworks, uye Tcl chiitiko chekuita, asi chiitiko loop muNode.js yakavanzwa kubva kumugadziri uye yakafanana nekubata chiitiko muwebhu application inoshanda. mubrowser. Paunenge uchinyora zvikumbiro zve node.js, iwe unofanirwa kufunga nezve chaiyo-inofambiswa nechiitiko chirongwa, semuenzaniso, pane kuita "var result = db.query("select..");" nekumirira kupedzwa kwebasa uye kunotevera kugadziriswa kwemigumisiro, Node.js inoshandisa nheyo yeasynchronous execution, i.e. iyo code inoshandurwa kuita "db.query("select..", function (result) {result processing});", umo kutonga kuchapfuura pakarepo kune imwe kodhi, uye mhinduro yemubvunzo ichagadziriswa kana data yasvika.

Source: opennet.ru

Voeg