O lo'o avanoa le fa'avae JavaScript Node.js 20.0

Node.js 20.0 na tatalaina, o se faʻavae mo le faʻaogaina o fesoʻotaiga i le JavaScript. Node.js 20.0 o loʻo faʻavasegaina o se lala lagolago mo se taimi umi, ae o lenei tulaga o le a tuʻuina atu ia Oketopa, pe a maeʻa le faʻamautuina. Node.js 20.x o le a lagolagoina seia oo ia Aperila 30, 2026. O le tausiga o le lala LTS muamua o Node.js 18.x o le a tumau seia oo ia Aperila 2025, ma le tausaga a'o lumana'i le lala LTS mulimuli 16.x seia oo ia Setema 2023. Ole lala ole 14.x LTS ole a fa'amuta ile Aperila 30th, ma le Node.js 19.x staging lala ole a fa'amuta ile Iuni 1st.

Fa'aleleia autu:

  • O le masini V8 ua toe faʻafouina i le version 11.3, faʻaaogaina i Chromium 113. Suiga faʻatusatusa i le Node.js 19 lala, lea na faʻaogaina le Chromium 107 afi, e aofia ai le String.prototype.isWellFormed ma toWellFormed galuega, le Array.prototype ma TypedArray. auala faʻataʻitaʻi mo le galue ma se kopi pe a suia mea Array ma TypedArray, o le "v" fuʻa i RegExp, lagolago mo le toe faʻaleleia o ArrayBuffer ma faʻateleina le tele o SharedArrayBuffer, toe faʻaleleia o siʻusiʻu (tail-call) i WebAssembly.
  • O se fa'ata'ita'iga fa'ata'ita'iga fa'ata'ita'iga ua fa'atūina e fa'ataga ai le fa'atapula'aina o avanoa i nisi o puna'oa a'o fa'atinoina. Fa'atagaga Fa'ata'ita'iga lagolago e mafai e ala i le fa'amaotiina o le fu'a "--experimental-permission" pe a tamo'e. O le faʻatinoga muamua e ofoina atu filifiliga mo le faʻatapulaʻaina o le tusitusi (--allow-fs-write) ma le faitau (--allow-fs-read) avanoa i nisi vaega o le faila faila, faiga a tamaiti (--allow-child-process), ma fa'aopoopoga (--leai-faaopoopo) ) ma filo (--fa'atagaina-tagata faigaluega). Mo se faʻataʻitaʻiga, ia faʻatagaina le tusitusi i le /tmp directory ma faitau le /home/index.js faila, e mafai ona e faʻamaonia: node -faʻataʻitaʻiga-faʻatagaina -allow-fs-write=/tmp/ -allow-fs-read=/home /index.js index.js

    Ina ia siaki le avanoa, e fautuaina e faʻaaoga le process.permission.has() metotia, mo se faʻataʻitaʻiga, "process.permission.has('fs.write',"/tmp/test").

  • ECMAScript External Module (ESM) faʻapipiʻiina e ala i le "--experimental-loader" filifiliga o loʻo tamomoʻe nei i se filo ese, vavae ese mai le filo autu, faʻaumatia le vaeluaga o le numera o talosaga ma utaina modules ESM. E tutusa ma tagata su'esu'e, o le import.meta.resolve() ua fa'atinoina nei fa'atasi pe a vala'au mai se talosaga. I se tasi o lala e sosoo ai o Node.js, o le lagolago mo le utaina o le ESM ua fuafua e faʻafeiloaʻi i le vaega o foliga mautu.
  • O le module node:test (test_runner), ua fuafuaina mo le fatuina ma le faʻatinoina o suʻega i le JavaScript e toe faʻafoʻi ai iʻuga i le TAP (Test Anything Protocol), ua faʻamautuina.
  • Na fa'atūina se 'au atina'e e nafa ma le fa'atinoina o galuega, lea, pe a saunia se lala fou, na galue e fa'avavevave vaega ta'avale eseese, e aofia ai URL parsing, fetch() ma EventTarget. Mo se faʻataʻitaʻiga, o le faʻauluuluga o le EventTarget initialization ua faʻaafaina, o le faʻatinoga o le URL.canParse() metotia ua matua faʻaleleia, ma ua faʻaleleia le lelei o taimi. E aofia ai foʻi le tuʻuina atu o se faʻasalalauga URL maualuga, Ada 2.0, tusia i le C++.
  • O le atinaʻeina o le faʻataʻitaʻiga gafatia mo le tuʻuina atu o talosaga i le tulaga o se faila e tasi e mafai ona faʻatinoina (SEA, Talosaga Faʻatonu Tasi) faʻaauau. O le fatuina o se faila e mafai ona faʻaaogaina e manaʻomia ai le suia o se paʻu na gaosia mai se faila faʻatulagaina i le JSON format (nai lo le suia o se faila JavaScript).
  • Faʻaleleia le fesoʻotaʻiga o le Web Crypto API ma faʻatinoga mai isi poloketi.
  • Fa'aopoopoina le lagolago aloa'ia mo Windows i luga o faiga ARM64.
  • O loʻo faʻaauau pea le faʻatinoina o le lagolago mo WASI (WebAssembly System Interface) mo le fatuina o talosaga tutoʻatasi WebAssembly. Ave'esea le mana'oga e fa'ama'oti se fu'a fa'apitoa e fa'atonu ai le laina e mafai ai e le WASI lagolago.

O le Node.js platform e mafai ona fa'aoga uma mo le lagolago i itu-aumau o talosaga i luga ole laiga, ma mo le fatuina o polokalame feso'ota'iga masani a tagata fa'atau ma server. Ina ia faʻalauteleina le faʻatinoga o talosaga mo Node.js, ua saunia se aofaʻiga tele o modules, lea e mafai ona e maua ai modules ma le faʻatinoga o le HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 servers ma tagata faʻatau, modules mo le tuʻufaʻatasia. faʻatasi ai ma faʻasalalauga 'upega tafaʻilagi eseese, WebSocket ma Ajax handler , fesoʻotaʻiga i DBMS (MySQL, PostgreSQL, SQLite, MongoDB), faʻataʻitaʻiga afi, masini CSS, faʻatinoga o faʻataʻitaʻiga algorithms ma faiga faʻatagaina (OAuth), XML parsers.

Ina ia mautinoa le faagasologa o se numera tele o talosaga tutusa, Node.js faʻaaogaina se faʻataʻitaʻiga faʻataʻitaʻiga code asynchronous e faʻavae i luga o le faʻaogaina o mea e le faʻalavelaveina ma le faʻamatalaga o tagata e faʻafeiloaʻi. O auala lagolago mo feso'ota'iga fa'atele o le epoll, kqueue, /dev/poll, ma filifili. Mo fesoʻotaʻiga multiplexing, o loʻo faʻaogaina le faletusi libuv, o se faʻaopoopoga mo libev i luga o Unix system ma IOCP i Windows. O le faletusi libeio o loʻo faʻaaogaina e fai ai se filo filo, ma c-ares ua tuʻufaʻatasia e faʻatino ai fesili DNS i le le poloka poloka. O telefoni uma e mafua ai le poloka e faia i totonu o le vaitaele filo ma, e pei o le au faʻailo, toe faʻafeiloaʻi le taunuuga oa latou galuega i se paipa e le o taʻua. O le faʻatinoina o le code JavaScript e tuʻuina atu e ala i le faʻaogaina o le masini V8 na atiaʻe e Google (faʻaopoopo, Microsoft o loʻo atiaʻe se faʻasologa o Node.js ma le Chakra-Core engine).

I lona autu, Node.js e tutusa ma le Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks, ma le Tcl event implementation, ae o le mea na tupu i Node.js o loʻo natia mai le atinaʻe ma e pei o le faʻafoeina o mea i totonu o se upega tafaʻilagi o loʻo tamoe. i le su'esu'e. Pe a tusia talosaga mo node.js, e tatau ona e mafaufau i faʻamatalaga patino o polokalame faʻaosoina, mo se faʻataʻitaʻiga, nai lo le faia o le "var result = db.query("select..");" faʻatasi ai ma le faʻatali mo le faʻamaeʻaina o galuega ma le gaioiga mulimuli ane o taunuʻuga, e faʻaaogaina e Node.js le mataupu faavae o le faʻataunuʻuina asynchronous, i.e. ua suia le code i le "db.query ("filifili ..", galuega (iuga) {result process});", lea o le a vave ona pasi atu le pule i le isi code, ma o le a faʻatautaia le faʻaiʻuga pe a oʻo mai faʻamatalaga.

puna: opennet.ru

Faaopoopo i ai se faamatalaga