Loaʻa ka paepae JavaScript ʻaoʻao Node.js 20.0

Ua hoʻokuʻu ʻia ka Node.js 20.0, kahi kahua no ka hoʻokō ʻana i nā noi pūnaewele ma JavaScript. Ua hāʻawi ʻia ʻo Node.js 20.0 i ka lālā kākoʻo lōʻihi, akā ʻaʻole e hāʻawi ʻia kēia kūlana a hiki i ʻOkakopa, ma hope o ka hoʻopaʻa ʻana. Kākoʻo ʻia ʻo Node.js 20.x a hiki i ʻApelila 30, 2026. E mau ana ka mālama ʻana i ka lālā Node.js 18.x LTS a hiki i ʻApelila 2025, a ʻo ka lālā 16.x LTS ma mua a hiki i Kepakemapa 2023. E mālama ʻia ka lālā 14.x LTS i ka lā 30 ʻApelila, a ʻo ka lālā manawa o Node.js 19.x ma Iune 1.

Nā hoʻomaikaʻi nui:

  • Ua hoʻonui ʻia ka mīkini V8 i ka mana 11.3, i hoʻohana ʻia ma Chromium 113. ʻO nā hoʻololi i hoʻohālikelike ʻia me ka lālā Node.js 19, i hoʻohana i ka mīkini Chromium 107, nā String.prototype.isWellFormed a me nā hana toWellFormed, ka Array.prototype. a me TypedArray.prototype hana e hana me ke kope ma ka hoololi o Array a me TypedArray mea, "v" hae ma RegExp, kākoʻo no ka hoʻololi 'ana i ArrayBuffer a me ka hoonui ana i ka nui o SharedArrayBuffer, huelo-kahea ma WebAssembly.
  • Manaʻo ʻia kahi ʻano hoʻohālike hoʻokolohua e hiki ai iā ʻoe ke kaupalena i ke komo ʻana i kekahi mau kumuwaiwai i ka wā o ka hoʻokō ʻana. Hoʻohana ʻia ke kākoʻo ʻae Model ma ke kuhikuhi ʻana i ka hae "--experimental-permission" i ka wā e holo ai. I ka hoʻokō mua ʻana, ua manaʻo ʻia nā koho e kaupalena i ke kākau (--allow-fs-write) a heluhelu (--allow-fs-read) i ke komo ʻana i kekahi mau māhele o ka FS, nā kaʻina hana keiki (--allow-child-process) , nā mea hoʻohui (--no-addons ) a me nā kaula (--allow-worker). No ka laʻana, no ka ʻae ʻana i ke kākau ʻana i ka papa kuhikuhi /tmp a heluhelu i ka faila /home/index.js, hiki iā ʻoe ke kuhikuhi: node --experimental-permission --allow-fs-write=/tmp/ --allow-fs-read =/home/index.js index .js

    No ka nānā ʻana i ke komo ʻana, manaʻo ʻia e hoʻohana i ke ʻano process.permission.has(), no ka laʻana, "process.permission.has('fs.write',"/tmp/test").

  • Hoʻokomo ʻia nā mea hoʻohana no ECMAScript external modules (ESMs) i hoʻouka ʻia ma o ke koho "--experimental-loader" i loko o kahi kaula kaʻawale, kaʻawale mai ke kaula nui, kahi e hoʻopau ai i ka intersection o ke code noi a me nā modules ESM i hoʻouka ʻia. E like me nā polokalamu kele pūnaewele, hoʻokō ʻia ke ʻano import.meta.resolve() i ka manawa like ke kāhea ʻia mai loko mai o kahi noi. Ma kekahi o nā lālā aʻe o Node.js, hoʻolālā ʻia ke kākoʻo hoʻouka ESM e neʻe i ka ʻāpana o nā hiʻohiʻona paʻa.
  • Ua hoʻoneʻe ʻia ka node:test (test_runner), i hoʻolālā ʻia e hana a holo i nā hoʻāʻo JavaScript e hoʻihoʻi i nā hopena ma ke ʻano TAP (Test Anything Protocol), i hoʻoneʻe ʻia i stable.
  • Ua hoʻokumu ʻia kahi hui hoʻokō ʻokoʻa, kahi i hoʻomākaukau ai no ka lālā hou, ua hana e hoʻolalelale i nā ʻāpana runtime like ʻole, me ka parsing URL, fetch() a me EventTarget. No ka laʻana, ua hoʻopau ʻia ka hapa nui o ka hoʻomaka ʻana i ka EventTarget, ua hoʻomaikaʻi maikaʻi ʻia ka hana o ke ala URL.canParse(), a ua hoʻomaikaʻi ʻia ka pono o nā manawa. Eia kekahi, ʻo ka hoʻokuʻu ʻana i kahi parser URL kiʻekiʻe - Ada 2.0, i kākau ʻia ma C ++, i loko o ka haku mele.
  • Ua hoʻomau ka hoʻomohala ʻana i kahi hiʻohiʻona hoʻokolohua no ka hāʻawi ʻana i nā noi ma ke ʻano o kahi faila hoʻokō hoʻokahi (SEA, Single Executable Applications). No ka hana ʻana i kahi mea hoʻokō i kēia manawa, pono e hoʻololi i kahi blob i hana ʻia mai kahi faila hoʻonohonoho JSON (ma kahi o ka hoʻololi ʻana i kahi faila JavaScript).
  • Hoʻomaikaʻi ʻia ʻo Web Crypto API me nā hoʻokō mai nā papahana ʻē aʻe.
  • Hoʻohui i ke kākoʻo mana no Windows ma nā ʻōnaehana ARM64.
  • Hoʻomau i ke kākoʻo no nā hoʻonui WASI (WebAssembly System Interface) no ka hana ʻana i nā noi WebAssembly kūʻokoʻa. Wehe ʻia ka pono e kuhikuhi i kahi hae laina kauoha kūikawā e hiki ai ke kākoʻo WASI.

Hiki ke hoʻohana ʻia ka paepae Node.js no ka mālama kikowaena o nā polokalamu Pūnaewele a no ka hoʻokumu ʻana i nā polokalamu kelepona maʻamau a me nā kikowaena kikowaena. No ka hoʻonuiʻana i ka hana o nā noi no Node.js, ua hoʻomākaukauʻia kahi hōʻiliʻili nui o nā modula, kahi e hiki ai iāʻoe ke loaʻa nā modula me ka hoʻokōʻana o HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 servers a me nā mea kūʻai, modules no ka hoʻohui. me nā pūnaewele pūnaewele likeʻole, WebSocket a me nā mea lima Ajax , nā mea hoʻohui DBMS (MySQL, PostgreSQL, SQLite, MongoDB), nā mīkini hoʻohālike, nā mīkini CSS, nā hoʻokō o nā crypto algorithms a me nā pūnaewele mana (OAuth), XML parsers.

No ka hōʻoia ʻana i ka hana ʻana o ka nui o nā noi like, hoʻohana ʻo Node.js i kahi hoʻohālike hoʻokō code asynchronous e pili ana i ka mālama ʻana i ka hanana ʻole a me ka wehewehe ʻana o nā mea hoʻohana kelepona. ʻO nā ala i kākoʻo ʻia no ka hoʻohui ʻana i nā pilina he epoll, kqueue, /dev/poll, a koho. No ka hoʻohui multiplexing, hoʻohana ʻia ka waihona libuv, kahi mea hoʻohui no libev ma nā ʻōnaehana Unix a me IOCP ma Windows. Hoʻohana ʻia ka waihona libeio no ka hana ʻana i kahi kolamu thread, a ua hoʻohui ʻia nā c-ares e hana i nā nīnau DNS ma ke ʻano pale ʻole. Hoʻokō ʻia nā kelepona ʻōnaehana āpau i hoʻopaʻa ʻia i loko o ka loko o ke kaula a laila, e like me nā mea lawelawe hōʻailona, ​​hoʻihoʻi i ka hopena o kā lākou hana ma o ka paipu inoa ʻole (pipe). Hāʻawi ʻia ka hoʻokō ʻana i ka code JavaScript ma o ka hoʻohana ʻana i ka mīkini V8 i hoʻomohala ʻia e Google (eia kekahi, ke kūkulu nei ʻo Microsoft i kahi mana o Node.js me ka ʻenekini Chakra-Core).

Ma kona kumu, ua like ka Node.js me ka Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks, a me ka hoʻokō hanana Tcl, akā ua hūnā ʻia ka hanana hanana ma Node.js mai ka mea hoʻomohala a ua like me ka lawelawe ʻana i ka hanana ma kahi noi pūnaewele e holo ana. ma ka polokalamu kele pūnaewele. I ke kākau ʻana i nā noi no node.js, pono ʻoe e noʻonoʻo i nā kikoʻī o ka hoʻonohonoho ʻana i ka hanana, no ka laʻana, ma mua o ka hana ʻana "var result = db.query("select..");" me ka kali ʻana no ka pau ʻana o ka hana a me ka hoʻoili ʻana o nā hopena, hoʻohana ʻo Node.js i ke kumu o ka hoʻokō asynchronous, ʻo ia hoʻi. ua hoʻololi ʻia ke code i "db.query ("koho ..", hana (hopena) {hopena hana});", kahi e hele koke ai ka mana i ke code hou aʻe, a e hana ʻia ka hopena nīnau i ka hiki ʻana mai o ka ʻikepili.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka