Server-sab JavaScript platform Node.js 20.0 muaj

Qhov kev tso tawm ntawm Node.js 20.0, lub platform rau kev ua tiav cov ntawv thov network hauv JavaScript, tau tshwm sim. Node.js 20.0 tau raug xa mus rau ceg txhawb nqa ntev, tab sis qhov xwm txheej no yuav tsis raug xa mus txog rau thaum Lub Kaum Hli, tom qab kev ruaj khov. Node.js 20.x yuav raug txhawb kom txog rau thaum lub Plaub Hlis 30, 2026. Kev saib xyuas ntawm yav dhau los Node.js 18.x LTS ceg yuav kav mus txog lub Plaub Hlis 2025, thiab yav dhau los 16.x LTS ceg mus txog lub Cuaj Hli 2023. Lub 14.x LTS ceg yuav raug kaw rau lub Plaub Hlis 30, thiab Node.js 19.x ib ntus ceg ntawm lub Rau Hli 1.

Kev txhim kho tseem ceeb:

  • Lub cav V8 tau hloov kho rau version 11.3, uas yog siv rau hauv Chromium 113. Ntawm cov kev hloov pauv piv rau Node.js 19 ceg, uas siv lub cav Chromium 107, String.prototype.isWellFormed thiab toWellFormed zog, lub Array.prototype. thiab TypedArray.prototype txoj kev ua haujlwm nrog cov ntawv luam ntawm kev hloov pauv ntawm Array thiab TypedArray cov khoom, "v" chij hauv RegExp, kev txhawb nqa rau resizing ArrayBuffer thiab nce qhov loj ntawm SharedArrayBuffer, tail-hu rau hauv WebAssembly.
  • Ib qho kev sim tso cai qauv mechanism tau npaj tseg uas tso cai rau koj txwv kev nkag mus rau qee yam kev pabcuam thaum ua tiav. Kev tso cai qauv kev txhawb nqa yog qhib los ntawm kev qhia tus chij "--sim-kev tso cai" thaum khiav. Nyob rau hauv thawj qhov kev siv, cov kev xaiv tau thov kom txwv tsis pub sau ntawv (--allow-fs-sau) thiab nyeem (--allow-fs-read) nkag mus rau qee qhov chaw ntawm FS, cov txheej txheem menyuam yaus (--allow-child-process) , add-ons (--no-addons) thiab threads (--allow-worker). Piv txwv li, kom tso cai sau ntawv rau /tmp directory thiab nyeem cov ntaub ntawv /home/index.js, koj tuaj yeem qhia meej: node --experimental-permission --allow-fs-write=/tmp/ --allow-fs-read =/home/index.js index.js

    Txhawm rau kuaj xyuas, nws raug nquahu kom siv cov txheej txheem process.permission.has(), piv txwv li, "process.permission.has('fs.write',"/tmp/test").

  • Handlers rau ECMAScript lwm modules (ESMs) loaded ntawm "--sim-loader" kev xaiv yog tam sim no raug tua nyob rau hauv ib tug nyias muaj nyias ib xov, cais los ntawm lub ntsiab xov, uas tshem tawm cov kev sib tshuam ntawm daim ntawv thov code thiab loaded ESM modules. Zoo ib yam li browsers, cov txheej txheem import.meta.resolve() tam sim no ua tiav synchronously thaum hu los ntawm hauv ib daim ntawv thov. Hauv ib qho ntawm cov ceg txuas ntxiv ntawm Node.js, ESM thauj khoom txhawb nqa tau npaj yuav tsiv mus rau qeb ntawm cov yam ntxwv ruaj khov.
  • Cov node:test (test_runner) module, tsim los tsim thiab khiav JavaScript cov kev xeem uas rov qab los rau hauv TAP (Test Anything Protocol) hom ntawv, tau tsiv mus rau ruaj khov.
  • Ib pab pawg ua tau zoo sib cais tau tsim, uas, hauv kev npaj rau cov ceg tshiab, tau ua haujlwm kom ceev ntau yam runtime Cheebtsam, suav nrog URL parsing, mus nqa () thiab kev sib tw. Piv txwv li, cov nyiaj siv ua haujlwm ntawm qhov pib ntawm EventTarget tau raug halved, qhov kev ua tau zoo ntawm URL.canParse() txoj kev tau txhim kho zoo, thiab kev ua tau zoo ntawm cov timers tau txhim kho. Tsis tas li ntawd, kev tso tawm ntawm qhov ua tau zoo URL parser - Ada 2.0, sau hauv C ++, suav nrog hauv cov khoom sib xyaw.
  • Kev txhim kho ntawm qhov kev sim rau kev xa cov ntawv thov hauv daim ntawv ntawm ib daim ntawv ua tiav (SEA, Ib Daim Ntawv Thov Ua Haujlwm Ib Leeg) tau txuas ntxiv mus. Tsim ib qho executable tam sim no yuav tsum tau hloov lub blob tsim los ntawm JSON cov ntaub ntawv teeb tsa (tsis yog hloov cov ntaub ntawv JavaScript).
  • Txhim kho Web Crypto API compatibility nrog kev siv los ntawm lwm cov haujlwm.
  • Ntxiv kev txhawb nqa rau Windows ntawm ARM64 systems.
  • Txuas ntxiv kev txhawb nqa rau WASI (WebAssembly System Interface) txuas ntxiv rau kev tsim cov ntawv thov WebAssembly standalone. Tshem tawm qhov yuav tsum tau qhia tshwj xeeb kab hais kom ua tus chij kom pab txhawb WASI.

Node.js platform tuaj yeem siv rau ob qho tib si rau kev saib xyuas neeg rau zaub mov ntawm Web daim ntawv thov thiab tsim kom muaj cov neeg siv khoom niaj hnub thiab cov kev pabcuam network server. Txhawm rau nthuav dav kev ua haujlwm ntawm cov ntawv thov rau Node.js, kev sau ntau ntawm cov qauv tau npaj, uas koj tuaj yeem pom cov qauv nrog kev siv HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 servers thiab cov neeg siv khoom, modules rau kev koom ua ke nrog ntau lub vev xaib, WebSocket thiab Ajax handlers, DBMS connectors (MySQL, PostgreSQL, SQLite, MongoDB), templates engines, CSS xyaw, kev siv crypto algorithms thiab tso cai systems (OAuth), XML parsers.

Txhawm rau kom ua tiav qhov kev thov ntau ntawm qhov sib npaug, Node.js siv tus qauv asynchronous code ua tiav raws li kev tswj hwm tsis txwv qhov kev tshwm sim thiab lub ntsiab lus ntawm kev hu xov tooj rov qab. Cov kev txhawb nqa rau kev sib txuas sib txuas yog epoll, kqueue, /dev/poll, thiab xaiv. Rau kev sib txuas multiplexing, lub tsev qiv ntawv libuv yog siv, uas yog ib qho ntxiv rau libev ntawm Unix systems thiab IOCP ntawm Windows. Lub tsev qiv ntawv libeio yog siv los tsim ib lub pas dej, thiab c-ares koom ua ke los ua DNS queries hauv hom tsis thaiv. Txhua qhov kev hu xov tooj uas ua rau kev thaiv yog raug tua hauv cov xov pas dej ua ke thiab tom qab ntawd, zoo li cov teeb liab tuav, hloov cov txiaj ntsig ntawm lawv txoj haujlwm rov qab los ntawm cov yeeb nkab tsis muaj npe (cov yeeb nkab). Kev ua tiav ntawm JavaScript code yog muab los ntawm kev siv lub cav V8 tsim los ntawm Google (tsis tas li ntawd, Microsoft tab tom tsim ib version ntawm Node.js nrog Chakra-Core engine).

Ntawm nws qhov tseem ceeb, Node.js zoo ib yam li Perl AnyEvent, Ruby Event Machine, Python Twisted moj khaum, thiab Tcl kev tshwm sim, tab sis qhov kev tshwm sim voj nyob rau hauv Node.js tau muab zais los ntawm tus tsim tawm thiab zoo li qhov xwm txheej tuav hauv daim ntawv thov web khiav. hauv browser. Thaum sau ntawv thov rau node.js, koj yuav tsum xav txog qhov tshwj xeeb ntawm qhov kev tshwm sim-tsav programming, piv txwv li, tsis txhob ua "var result = db.query("xaiv..");" nrog tos kom tiav kev ua haujlwm thiab ua tiav cov txiaj ntsig tom qab, Node.js siv lub hauv paus ntsiab lus ntawm asynchronous execution, i.e. cov cai tau hloov mus rau "db.query("xaiv..", muaj nuj nqi (tshem tawm) {tshem tawm ua haujlwm});", nyob rau hauv uas kev tswj yuav tam sim dhau mus rau cov lej ntxiv, thiab cov lus nug tshwm sim yuav ua tiav raws li cov ntaub ntawv tuaj txog.

Tau qhov twg los: opennet.ru

Ntxiv ib saib