Sèvè-bò JavaScript Node.js 14.0 lage

pran plas lage Node.js 14.0,platfòm pou kouri aplikasyon rezo nan JavaScript. Node.js 14.0 se yon branch sipò alontèm, men estati sa a pral sèlman asiyen nan mwa Oktòb, apre estabilizasyon. Node.js 14.0 pral sipòte dwe te pote soti jiska avril 2023. Antretyen branch LTS anvan Node.js 12.0 pral dire jiska avril 2022, ak ane anvan dènye branch LTS 10.0 jiska avril 2021. Sipò pou branch staging 13.x la ap fini nan mwa jen ane sa a.

Prensipal la amelyorasyon:

  • Kapasite nan jenere sou vole a oswa sou ensidan an nan sèten evènman yo te estabilize rapò dyagnostik, ki montre evènman ki ede fè dyagnostik pwoblèm tankou aksidan, degradasyon pèfòmans, fwit memwa, chaj CPU lou, pwodiksyon erè inatandi, elatriye.
  • Te ajoute sipò eksperimantal API Async Depo lokal ak aplikasyon klas AsyncLocalStorage, ki ka itilize pou kreye eta asynchrone ak moun kap okipe yo ki baze sou apèl ak pwomès yo. AsyncLocalStorage pèmèt ou estoke done pandan y ap trete yon demann entènèt, ki raple depo lokal fil nan lòt lang.
  • Retire mesaj avètisman sou karakteristik eksperimantal lè w ap chaje modil ECMAScript 6 konekte ak ekspòte lè l sèvi avèk deklarasyon enpòte ak ekspòtasyon. An menm tan an, aplikasyon an nan modil ESM tèt li rete eksperimantal.
  • Motè V8 mete ajou nan vèsyon an 8.1 (1, 2, 3), ki gen ladan nouvo optimize pèfòmans ak karakteristik tankou nouvo operatè konkatènasyon lojik "???" (retounen operand dwat la si operand gòch la NULL oswa endefini, ak vise vèrsa), operatè "?." pou yon chèk yon sèl fwa nan tout chèn pwopriyete oswa apèl (pa egzanp, "db?.user?.name?.length" san yo pa chèk preliminè), metòd Intl.DisplayName pou jwenn non lokalize, elatriye.
  • Yo te fè yon revizyon nan Streams API a, ki vize a amelyore konsistans nan Streams API yo ak elimine diferans ki genyen nan konpòtman an nan pati debaz yo nan Node.js. Pou egzanp, konpòtman an nan http.OutgoingMessage se fèmen nan stream.Writable, ak net.Socket se menm jan ak stream.Duplex. Opsyon autoDestroy la mete sou "vrè" pa default, ki vle di rele "_destroy" lè w fini.
  • Te ajoute sipò eksperimantal API WASI (Entèfas sistèm WebAssembly), bay entèfas lojisyèl pou entèraksyon dirèk ak sistèm operasyon an (POSIX API pou travay ak fichye, sipò, elatriye).
  • Ogmantasyon kondisyon pou vèsyon minimòm konpilateur ak platfòm: macOS 10.13 (High Sierra), GCC 6, Windows plus 7/2008R2.

Se pou nou sonje ke platfòm la Node.js ka itilize tou de pou sipò sèvè nan aplikasyon entènèt ak pou kreye kliyan òdinè ak pwogram rezo sèvè. Pou elaji fonctionnalités aplikasyon pou Node.js, yon gwo kantite koleksyon modil, nan ki ou ka jwenn modil ak aplikasyon an nan sèvè ak kliyan HTTP, SMTP, XMPP, dns, ftp, IMAP, POP3, modil pou entegrasyon ak kad entènèt divès kalite, WebSocket ak Ajax okipe, konektè nan DBMS (MySQL, PostgreSQL, SQLite). , MongoDB ), motè modèl, motè CSS, aplikasyon algoritm kriptografik ak sistèm otorizasyon (OAuth), analizeur 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. Bibliyotèk la itilize pou koneksyon multiplex libuv, ki se yon sipèstrikti sou libev sou sistèm Unix ak sou IOCP sou Windows. Yo itilize yon bibliyotèk pou kreye yon pisin fil libeio, pou fè demann DNS nan mòd ki pa bloke se entegre c-ares. Tout apèl sistèm ki lakòz bloke yo egzekite nan pisin nan fil epi answit, tankou moun k ap okipe siyal yo, pase rezilta travay yo tounen nan yon tiyo san non. Egzekisyon kòd JavaScript asire atravè itilizasyon yon motè Google devlope V8 (Anplis de sa, Microsoft ap devlope yon vèsyon Node.js ak motè Chakra-Core).

Nan nwayo li yo, Node.js sanble ak kad Perl AnyEvent, Machin Evènman Ruby, Piton trese и aplikasyon evènman nan Tcl, men bouk evènman an nan Node.js kache nan pwomotè a epi li sanble ak manyen evènman nan yon aplikasyon entènèt ki kouri nan yon navigatè. Lè w ap ekri aplikasyon pou node.js, li nesesè pou w pran an kont spesifik pwogramasyon ki baze sou evènman an, pa egzanp, olye pou w fè "var result = db.query ("select..");" ak ap tann pou fini an nan travay ak pwosesis ki vin apre nan rezilta yo, Node.js sèvi ak prensip la nan ekzekisyon asynchrone, i.e. se kòd la transfòme nan "db.query ("select..", fonksyon (rezilta) {pwosesis rezilta});", nan ki kontwòl pral imedyatman pase nan plis kòd, epi rezilta rechèch la pral trete kòm done rive. .

Sous: opennet.ru

Add nouvo kòmantè