{"id":99981,"date":"2021-04-21T16:22:48","date_gmt":"2021-04-21T14:22:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-servernoj-javascript-platformy-node-js-16-0"},"modified":"2021-04-21T16:22:48","modified_gmt":"2021-04-21T14:22:48","slug":"vypusk-servernoj-javascript-platformy-node-js-16-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-16-0","title":{"rendered":"Lansarea platformei server JavaScript Node.js 16.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>A avut loc lansarea Node.js 16.0, platforma pentru executarea aplica\u021biilor de re\u021bea scrise \u00een JavaScript. Node.js 16.0 este clasificat ca av\u00e2nd suport pe termen lung, dar acest statut va fi conferit abia \u00een octombrie, dup\u0103 stabilizare. Suportul pentru Node.js 16.0 va fi asigurat p\u00e2n\u0103 \u00een aprilie 2023. Suportul pentru fosta ramur\u0103 LTS Node.js 14.0 va continua p\u00e2n\u0103 \u00een aprilie 2023, iar pentru ramura LTS 12.0 p\u00e2n\u0103 \u00een aprilie 2022. Suportul pentru ramura LTS 10.0 se va \u00eencheia \u00een 10 zile.        <\/p>\n<p>\u00cembun\u0103t\u0103\u021biri principale:  <\/p>\n<ul>\n<li class=\"l\"> Motorul V8 a fost actualizat la versiunea 9.0 (\u00een Node.js 15 a fost utilizat\u0103 versiunea 8.6), ceea ce a permis implementarea \u00een Node.js 16 a unor func\u021bionalit\u0103\u021bi precum proprietatea \u201eindices\u201d pentru expresiile regulate (inclus\u0103 un array cu pozi\u021biile de \u00eenceput \u0219i sf\u00e2r\u0219it ale grupurilor de potrivire), metoda Atomics.waitAsync (versiunea asincron\u0103 a Atomics.wait), \u0219i suportul pentru utilizarea cuv\u00e2ntului cheie await \u00een module la nivel \u00eenalt. S-a accelerat apelul func\u021biilor, atunci c\u00e2nd num\u0103rul argumentelor transmise nu corespunde parametrilor defini\u021bi \u00een func\u021bie.\n<li class=\"l\"> API-ul Timers Promises a fost stabilizat, oferind un set alternativ de func\u021bii pentru lucrul cu temporizatoarele, care returneaz\u0103 obiecte Promise, permi\u021b\u00e2nd astfel evitarea utiliz\u0103rii util.promisify(). import { setTimeout } from 'timers\/promises'; async function run() { await setTimeout(5000); console.log('Hello, World!'); } run();\n<li class=\"l\"> A fost ad\u0103ugat\u0103 o implementare experimental\u0103 a API-ului Web Crypto, destinat execut\u0103rii opera\u021biunilor criptografice de baz\u0103 pe partea aplica\u021biilor web, precum manipularea hash-urilor criptografice, generarea \u0219i verificarea semn\u0103turilor digitale, codificarea \u0219i decodificarea datelor folosind diverse metode de criptare, generarea de numere aleatoare criptografic sigure. API-ul include, de asemenea, func\u021bii pentru generarea \u0219i gestionarea cheilor.\n<li class=\"l\"> N-API (API pentru dezvoltarea extensiilor) a fost actualizat la versiunea 8.\n<li class=\"l\"> A avut loc trecerea la noua versiune a managerului de pachete NPM 7.10.\n<li class=\"l\"> A fost stabilizat\u0103 implementarea clasei AbortController, bazat\u0103 pe Web API AbortController, care permite anularea semnalelor \u00een API-urile selectate bazate pe Promise.\n<li class=\"l\"> A fost stabilizat\u0103 suportul pentru a treia versiune a formatului Source Map, utilizat pentru a face leg\u0103tura \u00eentre modulele generate, procesate sau ambalate \u0219i codul surs\u0103 original.\n<li class=\"l\"> Pentru compatibilitatea cu API-urile Web \u00eenvechite, au fost ad\u0103ugate metodele buffer.atob(data) \u0219i buffer.btoa(data).\n<li class=\"l\"> A \u00eenceput formarea pachetelor pentru noile dispozitive Apple echipate cu cip ARM M1.\n<li class=\"l\"> Pe platforma Linux, cerin\u021bele pentru versiunea compilerului au fost ridicate la GCC 8.3.    <\/ul>\n<p>Reamintim c\u0103 platforma Node.js poate fi utilizat\u0103 at\u00e2t pentru suportul serverului aplica\u021biilor web, c\u00e2t \u0219i pentru crearea programelor de re\u021bea client \u0219i server obi\u0219nuite. Pentru extinderea func\u021bionalit\u0103\u021bii aplica\u021biilor pentru Node.js, a fost preg\u0103tit\u0103 o mare colec\u021bie de module, \u00een care se pot g\u0103si module cu implementarea  <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/ro\/server\/\"   title=\"servere\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1573\">servere<\/a> \u0219i clien\u021bi HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, module pentru integrarea cu diverse framework-uri web, manejere WebSocket \u0219i Ajax, convertoare pentru baze de date (MySQL, PostgreSQL, SQLite, MongoDB), generatoare de \u0219abloane, motoare CSS, implement\u0103ri de algoritmi criptografici \u0219i sisteme de autorizare (OAuth), parsere XML.    <\/p>\n<p> Pentru a asigura procesarea unui num\u0103r mare de cereri paralele, Node.js utilizeaz\u0103 un model asincron de execu\u021bie a codului, bazat pe procesarea evenimentelor \u00een mod neblocat \u0219i pe definirea de callback-uri. Ca metode de multiplexare a conexiunilor sunt sus\u021binute metode precum epoll, kqueue, \/dev\/poll \u0219i select. Pentru multiplexarea conexiunilor se utilizeaz\u0103 biblioteca libuv, care este o extensie a libev \u00een sistemele Unix \u0219i a IOCP \u00een Windows. Pentru crearea unui pool de thread-uri este folosit\u0103 biblioteca libeio, iar pentru executarea cererilor DNS \u00een mod neblocat este integrat c-ares. Toate apelurile sistemice care provoac\u0103 blocarea sunt executate \u00een interiorul pool-ului de thread-uri \u0219i apoi, la fel ca manejerele de semnale, transmit rezultatul muncii lor \u00eenapoi printr-un canal anonim (pipe). Execu\u021bia codului JavaScript este asigurat\u0103 prin implicarea motorului V8 dezvoltat de compania Google (\u00een plus, Microsoft dezvolt\u0103 o variant\u0103 de Node.js cu motorul Chakra-Core).        <\/p>\n<p>\u00cen esen\u021b\u0103, Node.js este similar cu cadrele Perl AnyEvent, Ruby Event Machine, Python Twisted \u0219i implementarea evenimentelor \u00een Tcl, dar ciclul de gestionare a evenimentelor (event loop) din Node.js este ascuns de dezvoltator \u0219i seam\u0103n\u0103 cu gestionarea evenimentelor \u00eentr-o aplica\u021bie web care ruleaz\u0103 \u00een browser. C\u00e2nd scrie\u021bi aplica\u021bii pentru node.js, trebuie s\u0103 \u021bine\u021bi cont de specificul program\u0103rii orientate pe evenimente, de exemplu, \u00een loc s\u0103 executa\u021bi &#171;var result = db.query(&#171;select..&#187;);&#187; a\u0219tept\u00e2nd finalizarea lucr\u0103rii \u0219i procesarea ulterioar\u0103 a rezultatelor, \u00een Node.js se utilizeaz\u0103 principiul execu\u021biei asincrone, adic\u0103 codul se transform\u0103 \u00een &#171;db.query(&#171;select..&#187;, function (result) {procesare rezultat});&#187;, moment \u00een care controlul va trece instantaneu la codul ulterior, iar rezultatul interog\u0103rii va fi procesat pe m\u0103sur\u0103 ce datele sosesc.        <\/p>\n<p>De asemenea, se poate men\u021biona c\u0103 compania Deno, fondat\u0103 de creatorul Node.js pentru dezvoltarea platformei de nou\u0103 genera\u021bie Deno, a ob\u021binut 4,9 milioane de dolari \u00een investi\u021bii. Pe destina\u021bia sa, Deno aminte\u0219te de Node.js, dar \u00eencearc\u0103 s\u0103 corecteze gre\u0219elile de concep\u021bie f\u0103cute \u00een arhitectura Node.js \u0219i s\u0103 ofere utilizatorilor un mediu mai sigur. Se subliniaz\u0103 c\u0103 solu\u021biile de afaceri ale companiei Deno vor fi construite pe produse complet open-source, iar modelul Open Core cu separarea unor func\u021bionalit\u0103\u021bi pl\u0103tite este considerat inacceptabil pentru platforma Deno.<br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=54998\">opennet.ro<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 16.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 JavaScript. Node.js 16.0 \u043e\u0442\u043d\u0435\u0441\u0451\u043d \u043a \u0432\u0435\u0442\u043a\u0430\u043c \u0441 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0440\u043e\u043a\u043e\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438, \u043d\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u043a\u0442\u044f\u0431\u0440\u0435, \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Node.js 16.0 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0434\u043e \u0430\u043f\u0440\u0435\u043b\u044f 2023 \u0433\u043e\u0434\u0430. \u0421\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 LTS-\u0432\u0435\u0442\u043a\u0438 Node.js 14.0 \u043f\u0440\u043e\u0434\u043b\u0438\u0442\u0441\u044f \u0434\u043e \u0430\u043f\u0440\u0435\u043b\u044f 2023 \u0433\u043e\u0434\u0430, \u0430 \u043f\u043e\u0437\u0430\u043f\u0440\u043e\u0448\u043b\u043e\u0439 LTS-\u0432\u0435\u0442\u043a\u0438 12.0 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-99981","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 16.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 JavaScript.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-16-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 JavaScript-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Node.js 16.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 16.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 JavaScript.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-16-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2021-04-21T14:22:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-04-21T14:22:48+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Lansarea platformei server-side JavaScript Node.js 16.0 | ProHoster","description":"A avut loc lansarea Node.js 16.0, platforma pentru rularea aplica\u021biilor web \u00een JavaScript.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-16-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 JavaScript-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Node.js 16.0 | ProHoster","og:description":"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 16.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 JavaScript.","og:url":"https:\/\/prohoster.info\/ro\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-16-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2021-04-21T14:22:48+00:00","article:modified_time":"2021-04-21T14:22:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"99981","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-04-21 14:41:15","updated":"2026-02-09 16:50:50","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/99981","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=99981"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/99981\/revisions"}],"predecessor-version":[{"id":158817,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/99981\/revisions\/158817"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=99981"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=99981"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=99981"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}