{"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\/pt\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-16-0","title":{"rendered":"Lan\u00e7amento da plataforma JavaScript de servidor Node.js 16.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Foi lan\u00e7ado o Node.js 16.0, uma plataforma para a execu\u00e7\u00e3o de aplica\u00e7\u00f5es de rede em JavaScript. O Node.js 16.0 est\u00e1 classificado como uma vers\u00e3o de longo prazo de suporte, mas esse status ser\u00e1 concedido apenas em outubro, ap\u00f3s a estabiliza\u00e7\u00e3o. O suporte para o Node.js 16.0 ser\u00e1 mantido at\u00e9 abril de 2023. O suporte para a vers\u00e3o LTS anterior, Node.js 14.0, continuar\u00e1 at\u00e9 abril de 2023, enquanto o suporte para a vers\u00e3o LTS anterior a esta, 12.0, ir\u00e1 at\u00e9 abril de 2022. O suporte para a vers\u00e3o LTS 10.0 ser\u00e1 encerrado em 10 dias.        <\/p>\n<p>Principais melhorias:  <\/p>\n<ul>\n<li class=\"l\"> O motor V8 foi atualizado para a vers\u00e3o 9.0 (a vers\u00e3o 8.6 foi usada no Node.js 15), o que permitiu a implementa\u00e7\u00e3o em Node.js 16 de recursos como a propriedade 'indices' para express\u00f5es regulares (inclui um array com as posi\u00e7\u00f5es iniciais e finais dos grupos de correspond\u00eancia), o m\u00e9todo Atomics.waitAsync (uma vers\u00e3o ass\u00edncrona do Atomics.wait) e o suporte ao uso da palavra-chave await em m\u00f3dulos de n\u00edvel superior. A chamada de fun\u00e7\u00f5es foi acelerada em situa\u00e7\u00f5es em que o n\u00famero de argumentos passados n\u00e3o corresponde aos par\u00e2metros definidos na fun\u00e7\u00e3o.\n<li class=\"l\"> O API Timers Promises foi estabilizado, oferecendo um conjunto alternativo de fun\u00e7\u00f5es para trabalhar com temporizadores que retornam objetos Promise, permitindo evitar o uso de util.promisify(). import { setTimeout } from 'timers\/promises'; async function run() { await setTimeout(5000); console.log('Ol\u00e1, Mundo!'); } run();\n<li class=\"l\"> Foi adicionada uma implementa\u00e7\u00e3o experimental da API Web Crypto, destinada \u00e0 execu\u00e7\u00e3o de opera\u00e7\u00f5es criptogr\u00e1ficas b\u00e1sicas em aplica\u00e7\u00f5es web, como manipula\u00e7\u00e3o de hashes criptogr\u00e1ficos, gera\u00e7\u00e3o e verifica\u00e7\u00e3o de assinaturas digitais, codifica\u00e7\u00e3o e decodifica\u00e7\u00e3o de dados usando diferentes m\u00e9todos de criptografia e gera\u00e7\u00e3o de n\u00fameros aleat\u00f3rios criptograficamente seguros. A API tamb\u00e9m inclui fun\u00e7\u00f5es para gera\u00e7\u00e3o e gerenciamento de chaves.\n<li class=\"l\"> O N-API (API para desenvolvimento de complementos) foi atualizado para a vers\u00e3o 8.\n<li class=\"l\"> Foi realizada a transi\u00e7\u00e3o para a nova vers\u00e3o do gerenciador de pacotes NPM 7.10.\n<li class=\"l\"> Foi estabilizada a implementa\u00e7\u00e3o da classe AbortController, baseada na Web API AbortController, que permite cancelar sinais em APIs baseadas em Promise.\n<li class=\"l\"> Foi estabilizado o suporte para a terceira vers\u00e3o do formato Source Map, utilizado para mapear m\u00f3dulos gerados, processados ou compactados com o c\u00f3digo-fonte original.\n<li class=\"l\"> Para compatibilidade com APIs web obsoletas, foram adicionados os m\u00e9todos buffer.atob(data) e buffer.btoa(data).\n<li class=\"l\"> Come\u00e7ou a forma\u00e7\u00e3o de composi\u00e7\u00f5es para novos dispositivos Apple equipados com o chip ARM M1.\n<li class=\"l\"> Na plataforma Linux, os requisitos para a vers\u00e3o do compilador foram elevados para GCC 8.3.    <\/ul>\n<p>Lembramos que a plataforma Node.js pode ser utilizada tanto para suporte ao servidor de aplicativos Web, quanto para a cria\u00e7\u00e3o de programas de rede tanto clientes quanto servidores. Para expandir a funcionalidade dos aplicativos para Node.js, foi preparada uma grande cole\u00e7\u00e3o de m\u00f3dulos, onde \u00e9 poss\u00edvel encontrar m\u00f3dulos com implementa\u00e7\u00f5es.  <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pt\/server\/\"   title=\"servidores\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1573\">servidores<\/a> e clientes HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, m\u00f3dulos para integra\u00e7\u00e3o com diversos frameworks web, manipuladores WebSocket e Ajax, conectores a bancos de dados (MySQL, PostgreSQL, SQLite, MongoDB), motores de template, motores CSS, implementa\u00e7\u00f5es de algoritmos de criptografia e sistemas de autoriza\u00e7\u00e3o (OAuth), parsers XML.    <\/p>\n<p> Para garantir o processamento de um grande n\u00famero de solicita\u00e7\u00f5es paralelas, o Node.js utiliza um modelo ass\u00edncrono de execu\u00e7\u00e3o de c\u00f3digo, baseado em processamento de eventos em modo n\u00e3o bloqueante e determina\u00e7\u00e3o de manipuladores de callback. Como m\u00e9todos de multiplexa\u00e7\u00e3o de conex\u00f5es, s\u00e3o suportados m\u00e9todos como epoll, kqueue, \/dev\/poll e select. Para a multiplexa\u00e7\u00e3o de conex\u00f5es, usa-se a biblioteca libuv, que \u00e9 uma camada de abstra\u00e7\u00e3o sobre libev em sistemas Unix e sobre IOCP no Windows. Para criar um pool de threads, a biblioteca libeio \u00e9 utilizada, e para a execu\u00e7\u00e3o de consultas DNS de maneira n\u00e3o bloqueante, o c-ares foi integrado. Todas as chamadas de sistema que causam bloqueio s\u00e3o executadas dentro do pool de threads e, assim como os manipuladores de sinais, transmitem o resultado de seu trabalho de volta atrav\u00e9s de um canal n\u00e3o nomeado (pipe). A execu\u00e7\u00e3o de c\u00f3digo JavaScript \u00e9 garantida pela utiliza\u00e7\u00e3o do mecanismo V8 desenvolvido pela Google (adicionalmente, a Microsoft desenvolve uma vers\u00e3o do Node.js com o mecanismo Chakra-Core).        <\/p>\n<p>Essencialmente, o Node.js \u00e9 semelhante a frameworks como Perl AnyEvent, Ruby Event Machine e Python Twisted, al\u00e9m da implementa\u00e7\u00e3o de eventos em Tcl, mas o ciclo de processamento de eventos (event loop) no Node.js \u00e9 oculto do desenvolvedor e se assemelha ao manuseio de eventos em uma aplica\u00e7\u00e3o web rodando em um navegador. Ao escrever aplica\u00e7\u00f5es para Node.js, deve-se considerar a especificidade da programa\u00e7\u00e3o orientada a eventos; por exemplo, em vez de executar &#171;var result = db.query(&#171;select..&#187;);&#187; com a expectativa de que a opera\u00e7\u00e3o seja conclu\u00edda antes de processar os resultados, no Node.js utiliza-se o princ\u00edpio de execu\u00e7\u00e3o ass\u00edncrona, ou seja, o c\u00f3digo \u00e9 transformado em &#171;db.query(&#171;select..&#187;, function (result) {processamento do resultado});&#187;, onde o controle \u00e9 imediatamente transferido para o c\u00f3digo posterior, enquanto o resultado da consulta \u00e9 processado \u00e0 medida que os dados chegam.        <\/p>\n<p>Adicionalmente, pode-se destacar que a empresa Deno, fundada pelo criador do Node.js para o desenvolvimento da plataforma de nova gera\u00e7\u00e3o Deno, recebeu 4,9 milh\u00f5es de d\u00f3lares em investimentos. Em sua finalidade, Deno se assemelha ao Node.js, mas tenta corrigir erros conceituais cometidos na arquitetura do Node.js e oferecer aos usu\u00e1rios um ambiente mais seguro. \u00c9 observado que as solu\u00e7\u00f5es de neg\u00f3cios da Deno ser\u00e3o constru\u00eddas com base em produtos totalmente abertos, enquanto o modelo Open Core com a separa\u00e7\u00e3o de funcionalidades pagas \u00e9 considerado inaceit\u00e1vel para a plataforma Deno.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=54998\">opennet.ru<\/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.3 - 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\/pt\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-16-0\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\udd47Lan\u00e7amento da plataforma JavaScript do servidor Node.js 16.0 | ProHoster","description":"Foi lan\u00e7ado o Node.js 16.0, a plataforma para a execu\u00e7\u00e3o de aplica\u00e7\u00f5es de rede em JavaScript.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-16-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/99981","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=99981"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/99981\/revisions"}],"predecessor-version":[{"id":158817,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/99981\/revisions\/158817"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=99981"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=99981"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=99981"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}