Node.js 23.0.0, yon platfòm pou kouri aplikasyon rezo nan JavaScript, te lage. Node.js 23.0 klase kòm yon branch entèmedyè, ki pral sipòte pou 7 mwa (jiska jen 2025). Nan jou kap vini yo, estabilizasyon Node.js 22 branch lan pral fini, ki pral resevwa estati LTS nan 29 oktòb epi yo pral sipòte jiska avril 2027. Sipò pou branch LTS sot pase yo nan Node.js 20.x ak 18.x ap kontinye jiska avril 2026 ak 2025, respektivman.
Gwo amelyorasyon:
- Te ajoute sipò eksperimantal pou TypeScript, ki pèmèt definisyon klè kalite. Sipò yo pèmèt lè l sèvi avèk opsyon "--experimental-strip-types" ak "--experimental-transform-types". Nan ka a nan premye opsyon, travay ak TypeScript redwi a netwaye definisyon kalite lang-espesifik (tip tcheke pa fèt, kòd la tou senpleman konvèti nan JavaScript ki san tip). Dezyèm opsyon an konvèti kèk eleman sentaks TypeScript, tankou enums ak espas non, nan kòd JavaScript.
- Aktivite pa default se kapasite nan sèvi ak "require()" apèl la chaje JavaScript ESM modil (ECMAScript Modil) nan mòd synchrone. Modil ESM yo itilize nan navigatè epi ranplase modil CommonJS espesifik nan Node.js. Pou chaje atravè "require()" nan Node.js, modil ESM la dwe egzekite synchrone (san tann nan nivo siperyè).
- Yo bay deteksyon otomatik modil ESM nan dosye san oswa avèk ekstansyon ".js". Anvan sa, fichye sa yo te trete kòm modil CommonJS sof si kalite yo te espesifye klèman nan fichye package.json ki sitiye nan menm anyè a ("kalite": "modil"). Nan nouvo vèsyon an, pou dosye ki gen kalite pa espesifye nan package.json, li premye eseye chaje kòm yon modil CommonJS, epi si sa a echwe, Lè sa a, kòm yon modil ESM.
- Aplikasyon eksperimantal te ajoute konpatib ak navigatè yo API Depo Web la fèt pou estokaj done pèsistan (klas localStorage) oswa tanporè (klas sessionStorage) nan fòma kle/valè. Pou aktive sipò Depo Web la, ou dwe egzekite API a avèk drapo "--experimental-webstorage" la epi presize chemen ki mennen nan fichye depo a lè l sèvi avèk drapo "--localstorage-file" la.
- Te ajoute eksperimantal SQLite API pou travay ak baz done lè l sèvi avèk langaj rechèch SQL ak depo ki baze sou bibliyotèk SQLite. Anplis estoke baz done a nan yon dosye sou disk, li kapab tou mete l nan memwa lè w espesifye ":memory:" olye pou yo non fichye a. Se API Depo Entènèt ki mansyone pi wo a tou aplike sou tèt SQLite, sa ki lakòz adisyon a nan SQLite kòm yon depandans pou Node.js.
- Kòmand "node —run" la te deklare estab, ki fèt pou kouri scripts defini nan fichye package.json la.
- Aplike sipò si ou vle pou kachèt kòd konpile sou disk pou siyifikativman akselere lansman modil yo. Kache pèmèt atravè varyab anviwònman NODE_COMPILE_CACHE. An tèm de objektif li yo, karakteristik la sanble ak pake v8-konpile-kachèt la, men diferan nan pi wo pèfòmans ak sipò pou modil ESM.
- Objè Buffer la te optimize pou ogmante siyifikativman pèfòmans metòd Buffer.copy() ak Buffer.write().
- Pèfòmans node:fs modil la amelyore, ki tou redwi kantite apèl nan kòd C++ pandan operasyon an.
- Motè V8 la te mete ajou nan vèsyon 12.9, yo itilize nan Chromium 129.
- Yo retire sipò pou sistèm Windows 32-bit.
- Akòz entwodiksyon de karakteristik ki defini nan estanda C++8 nan Node.js ak motè V20 la, kondisyon pou vèsyon GCC konpilatè a ogmante. Bati Node.js kounye a mande pou omwen GCC 12.
Platfòm Node.js la ka itilize ni pou sipò bò sèvè aplikasyon entènèt yo ni pou kreye pwogram rezo estanda bò kliyan ak bò sèvè. Pou elaji fonksyonalite aplikasyon Node.js yo, yo prepare yon gwo koleksyon modil, ki gen ladan sa yo ki aplike... sèvè yo ak kliyan HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, modil pou entegrasyon ak divès kad travay entènèt, jesyonè WebSocket ak Ajax, konektè pou SGBD (MySQL, PostgreSQL, SQLite, MongoDB), motè modèl, motè CSS, aplikasyon algoritm kriptografik ak sistèm otorizasyon (OAuth), analizè XML.
Pou okipe yon gwo kantite demann paralèl, Node.js sèvi ak yon modèl ekzekisyon kòd asynchrone ki baze sou pwosesis evènman ki pa bloke ak defini moun kap okipe apèl. Metòd ki sipòte pou koneksyon multiplexage yo enkli epoll, kqueue, /dev/poll, epi chwazi. Pou koneksyon multiplexing, yo itilize bibliyotèk libuv la, ki se yon sipleman libev sou sistèm Unix ak IOCP sou Windows. Libeio bibliyotèk la itilize pou kreye yon pisin fil, epi c-ares entegre pou fè demann DNS nan yon mòd ki pa bloke. Tout apèl sistèm ki lakòz bloke yo egzekite nan pisin nan fil epi answit, tankou moun kap okipe siyal yo, pase rezilta travay yo tounen nan yon tiyo san non.
Egzekisyon kòd JavaScript asire atravè itilizasyon motè V8 Google devlope (anplis de sa, Microsoft ap devlope yon vèsyon Node.js ak motè Chakra-Core). Nan nwayo li yo, Node.js sanble ak Perl AnyEvent, Ruby Event Machine, Python Twisted kad ak aplikasyon evènman nan Tcl, men bouk evènman an nan Node.js kache nan pwomotè a epi li sanble ak pwosesis evènman nan yon aplikasyon entènèt. kouri nan navigatè a.
Sous: opennet.ru
