Servo-parte JavaScript Node.js 17.0 release

Node.js 17.0, suggestum ad applicationes retis in JavaScript currit, dimissa est. Node.js 17.0 ramus adminiculum regulare est quod renovationes usque ad Iunium 2022 recipiet. In diebus venientibus, stabilitio Node.js 16 ramus complebitur, quae statum LTS recipiet et usque ad Aprilem MMXXIV sustentabitur. Tutela prioris LTS rami Node.js 2024 usque ad Aprilis 14.0 durabit, et annus ante ultimum LTS ramusculi 2023 usque ad Aprilem MMXXII.

Praecipua meliora:

  • V8 machinam ad versionem 9.5.
  • Exsecutio variantium fundamentalium API secundum usum promissionis asynchronae computationis interfaciei continuavit. Praeter antea oblatos Timers Promissiones et Promissiones APIs, Node.js 17.0 inducit Readline Promissionem API ad legendi data linea per lineam moduli legendi utens. import * as readline from 'node:readline/promissa'; import { stdin as input, stdout as output} from 'processus'; const ri = readline.createInterface({ input, output}); const answer = await rl.question('What do you think of Node.js?'); console.log('Gratias tibi ago pro tui magni pretii feedback: ${respondeo}'); rl.close();
  • Bibliotheca instructa OpenSSL renovata est ad versionem 3.0 (a furca quictls/openssl cum QUIC protocollo subsidii capacitatis adhibetur).
  • Node.js versionem paravit ut in ACERVUS vestigia exponantur quae output sunt in casu errorum fatalium quae applicationis terminandi causant.

Praeterea commemorare possumus eliminationem duorum vulnerabilium in ramis currentibus Node.js (CVE-2021-22959, CVE-2021-22960), quae efficere possunt ut "HTTP Request smuggling" (HRS) impetus, qui sinite nos in contenta aliarum utentium petitionum cuneum in eodem filo inter frontendum et backend processisse (exempli gratia: codice maligno JavaScript in aliam sessionem usoris inseri potest). Singula postea patebunt, sed nunc tantum scimus problemata ex recta tractatione spatia inter nomen HTTP capitis et colonum causari, necnon varias tractationes vecturae reditus et lineae cibariorum characterum in parametro trunco ​​adhibito transmittentes. petitio corporis in partibus "chunked" modum "

Recole quod suggestum Node.js tum adhiberi potest ad conservationem applicationum interretialium tum ad clientem ordinarium creandum et programmata retis servientis. Ad dilatandum munus applicationum ad Node.js, magna modulorum collectio parata est, in qua modulos invenire potes cum exsequenda HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 servientibus et clientibus, modulorum ad integrationem. cum variis interretialibus compagibus, WebSocket et Aiax tracti, DBMS connexiones (MySQL, PostgreSQL, SQLite, MongoDB), machinas templating, machinas CSS, implementationes algorithmarum crypto- riorum et systematum auctoritatis (OAuth), XML parsers.

Ut processus permulta petitionum parallelarum curet, Node.js utitur exemplaris exsecutionis asynchrono codice innixo in eventu tractandi non-obstructione ac definitione tracto callback. Modi ad coniunctiones multiplices sustentatae sunt epoll, kqueue, /dev/poll et selectae. Pro connexione multiplicationis, bibliotheca libuv adhibetur, quae addendi est pro libev in systematibus Unix et IOCP in Fenestra. Libeio bibliotheca adhibetur piscinam filo creare, et c-ares integratur ad DNS queries faciendas in modo non-obturando. Omnes systematis vocat causam interclusionis intra piscinam sequelam efficiuntur et, ut tracto insignes, exitum operis sui per fistulam innominatam (pipe) reportant. Executio codicis JavaScript providetur per usum machinae V8 a Google explicatae (praeter Microsoft versionem Node.js cum machina Chakra-Core evolvit).

In core suo, Node.js similis est machinae Perl AnyEvent, Event Ruby Machine, Python compages retortae, ac Tcl eventum exsequendum, sed eventum loop in Node.js absconditum est a elit, et similis eventus tractatio in applicatione telae cursus in pasco. Cum applicationes pro node.js scribo, speciales programmationis eventus agitatae considerare debes, exempli gratia, non "var eventum = db.query"); cum exspectatione complementi operis et processus subsequentis eventus, Node.js utitur principio asynchronous executionis, i.e. codicem in "db.query" ("selectam.", munus (result) {proventus processui});" in quo potestate statim ad codicem ulteriorem transibit, et quaesitum proventum ut notitia perveniat discursum erit.

Source: opennet.ru