{"id":78969,"date":"2020-04-23T13:42:02","date_gmt":"2020-04-23T11:42:02","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-servernoj-javascript-platformy-node-js-14-0"},"modified":"2020-04-23T13:42:02","modified_gmt":"2020-04-23T11:42:02","slug":"vypusk-servernoj-javascript-platformy-node-js-14-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-14-0","title":{"rendered":"Rilascio della piattaforma JavaScript server Node.js 14.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/nodejs.org\/en\/blog\/release\/v14.0.0\/\">Si \u00e8 tenuto<\/a><\/noindex> il rilascio <noindex><a rel=\"nofollow\" href=\"https:\/\/nodejs.org\">Node.js 14.0<\/a><\/noindex>, piattaforme per l'esecuzione di applicazioni di rete in JavaScript. Node.js 14.0 appartiene ai rami con supporto a lungo termine, ma questo stato sar\u00e0 assegnato solo a ottobre, dopo un periodo di stabilizzazione. Il supporto per Node.js 14.0 sar\u00e0 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/nodejs\/Release\">fornito<\/a><\/noindex> fino ad aprile 2023. Il supporto della precedente versione LTS Node.js 12.0 continuer\u00e0 fino ad aprile 2022, mentre quello della versione LTS 10.0 terminer\u00e0 ad aprile 2021. Il supporto per il ramo intermedio 13.x si concluder\u00e0 a giugno di quest'anno.<\/p>\n<p>Principali <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@nodejs\/node-js-version-14-available-now-8170d384567e\">miglioramenti<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> \u00c8 stata stabilizzata la capacit\u00e0 di generare on-the-fly o a seguito di determinati eventi <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/the-node-js-collection\/easily-identify-problems-in-node-js-applications-with-diagnostic-report-dc82370d8029\">report diagnostici<\/a><\/noindex>, nei quali vengono riflessi eventi utili per diagnosticare problemi come crash, cali di prestazioni, perdite di memoria, elevato carico della CPU, output imprevisti di errori e altro.\n<li class=\"l\"> \u00c8 stata aggiunta la supporto sperimentale per l'API <noindex><a rel=\"nofollow\" href=\"https:\/\/nodejs.org\/api\/async_hooks.html#async_hooks_class_asynclocalstorage\">Async Local Storage<\/a><\/noindex> con l'implementazione della classe AsyncLocalStorage, che pu\u00f2 essere utilizzata per creare uno stato asincrono con gestori basati su callback e promise. AsyncLocalStorage consente di memorizzare dati durante l'elaborazione delle richieste web, simile agli archivi locali per singoli thread (Thread-Local Storage) in altri linguaggi.\n<li class=\"l\"> \u00c8 stata rimossa la notifica di avviso sulla funzionalit\u00e0 sperimentale durante il caricamento <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/nodejs\/node\/blob\/master\/doc\/api\/esm.md\">moduli<\/a><\/noindex>  <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=42450\">ECMAScript 6<\/a><\/noindex> di moduli importati ed esportati mediante le espressioni import ed export. Tuttavia, l'implementazione dei moduli ESM rimane al momento sperimentale.\n<li class=\"l\"> Il motore V8 \u00e8 stato aggiornato alla versione <noindex><a rel=\"nofollow\" href=\"https:\/\/v8.dev\/\">8.1<\/a><\/noindex> (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52000\">1<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52565\">2<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52312\">3<\/a><\/noindex>), in cui sono state apportate nuove ottimizzazioni delle prestazioni e aggiunti aggiornamenti come il nuovo operatore logico di coalescenza \u00ab??\u00bb (che restituisce l'operando destro se l'operando sinistro \u00e8 NULL o undefined, e viceversa), l'operatore \u00ab?.\u00bb per il controllo simultaneo dell'intera catena di propriet\u00e0 o chiamate (ad esempio \u00abdb?.user?.name?.length\u00bb senza verifiche preliminari), il metodo Intl.DisplayName per ottenere nomi localizzati, ecc.\n<li class=\"l\"> \u00c8 stata effettuata una revisione dell'API Streams, con l'obiettivo di migliorare la coerenza delle interfacce API Streams e rimuovere le discrepanze nel comportamento delle parti fondamentali di Node.js. Ad esempio, il comportamento di http.OutgoingMessage \u00e8 stato avvicinato a stream.Writable, e net.Socket a stream.Duplex. L'opzione autoDestroy \u00e8 impostata su \u00abtrue\u00bb per impostazione predefinita, implicando la chiamata a \u00ab_destroy\u00bb al termine.\n<li class=\"l\"> \u00c8 stata aggiunta la supporto sperimentale per l'API <noindex><a rel=\"nofollow\" href=\"https:\/\/nodejs.org\/api\/wasi.html\">WASI<\/a><\/noindex> (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50406\">WebAssembly System Interface<\/a><\/noindex>), fornendo interfacce software per un'interazione diretta con il sistema operativo (API POSIX per lavorare con file, socket ecc.).\n<li class=\"l\"> Sono aumentate le esigenze riguardo a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/nodejs\/node\/blob\/v12.x\/BUILDING.md#platform-list\">versioni minime<\/a><\/noindex> compilatori e piattaforme: macOS 10.13 (High Sierra), GCC 6,  <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/nodejs\/node\/pull\/31954\">Windows oltre 7\/2008R2<\/a><\/noindex>.\n<\/ul>\n<p>Ricordiamo che la piattaforma Node.js pu\u00f2 essere utilizzata sia per il supporto server delle web application, sia per la creazione di normali programmi di rete client e server. \u00c8 stata preparata una grande <noindex><a rel=\"nofollow\" href=\"https:\/\/www.npmjs.com\/\">collezione di moduli<\/a><\/noindex>, in cui \u00e8 possibile trovare moduli con l'implementazione di server e client HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduli per l'integrazione con vari web framework, gestori WebSocket e Ajax, connettori per DBMS (MySQL, PostgreSQL, SQLite, MongoDB), motori di templating, motori CSS, implementazioni di algoritmi crittografici e sistemi di autorizzazione (OAuth), parser XML.<\/p>\n<p> Per gestire un elevato numero di richieste parallele, Node.js utilizza un modello di esecuzione asincrono basato su un trattamento eventi in modalit\u00e0 non bloccante e definizione di callback. Come metodi di multiplexing delle connessioni, supporta tecniche come epoll, kqueue, \/dev\/poll e select. Per il multiplexing delle connessioni viene utilizzata la libreria <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/libuv\/libuv\">libuv<\/a><\/noindex>, che \u00e8 una sovrastruttura su <noindex><a rel=\"nofollow\" href=\"http:\/\/software.schmorp.de\/pkg\/libev.html\">libev<\/a><\/noindex> nei sistemi Unix e su IOCP in Windows. Per creare un pool di thread viene utilizzata la libreria <noindex><a rel=\"nofollow\" href=\"http:\/\/software.schmorp.de\/pkg\/libeio.html\">libeio<\/a><\/noindex>, per eseguire query DNS in modalit\u00e0 non bloccante \u00e8 integrato <noindex><a rel=\"nofollow\" href=\"http:\/\/c-ares.haxx.se\/\">c-ares<\/a><\/noindex>. Tutti i syscall che causano blocchi vengono eseguiti all'interno del pool di thread e poi, come anche i gestori dei segnali, restituiscono il risultato del loro lavoro tramite un canale anonimo (pipe). L'esecuzione del codice JavaScript \u00e8 garantita attraverso l'utilizzo del motore sviluppato da Google <noindex><a rel=\"nofollow\" href=\"http:\/\/code.google.com\/p\/v8\/\">V8<\/a><\/noindex> (in aggiunta Microsoft sviluppa una variante di Node.js con il motore Chakra-Core).  <\/p>\n<p>Node.js \u00e8 essenzialmente simile a framework quali <noindex><a rel=\"nofollow\" href=\"http:\/\/search.cpan.org\/dist\/AnyEvent\/\">Perl AnyEvent<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/eventmachine\/eventmachine\">Ruby Event Machine<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/twistedmatrix.com\/\">Python Twisted<\/a><\/noindex> e <noindex><a rel=\"nofollow\" href=\"http:\/\/wiki.tcl.tk\/1527\">implementazione<\/a><\/noindex> eventi in Tcl, ma il ciclo di elaborazione eventi (event loop) in Node.js \u00e8 nascosto agli sviluppatori e somiglia all'elaborazione di eventi in un'app web che funziona in un browser. Quando si scrivono applicazioni per node.js, \u00e8 necessario considerare le peculiarit\u00e0 della programmazione orientata agli eventi; ad esempio, invece di eseguire &#171;var result = db.query(&#171;select..&#187;);&#187; attendendo il completamento e successivamente elaborando i risultati, in Node.js si utilizza il principio dell'esecuzione asincrona, ovvero il codice viene trasformato in &#171;db.query(&#171;select..&#187;, function (result) {elaborazione del risultato});&#187;, dove il controllo passa immediatamente al codice successivo e il risultato della query sar\u00e0 elaborato man mano che i dati arrivano. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Fonte: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52786\">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 14.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 14.0 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \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 14.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 12.0 \u043f\u0440\u043e\u0434\u043b\u0438\u0442\u0441\u044f \u0434\u043e \u0430\u043f\u0440\u0435\u043b\u044f 2022 \u0433\u043e\u0434\u0430, \u0430 \u043f\u043e\u0437\u0430\u043f\u0440\u043e\u0448\u043b\u043e\u0439 LTS-\u0432\u0435\u0442\u043a\u0438 10.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-78969","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.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 14.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.\" \/>\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\/it\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-14-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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 14.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 14.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-14-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=\"2020-04-23T11:42:02+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-23T11:42:02+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\udd47Rilascio della piattaforma JavaScript server Node.js 14.0 | ProHoster","description":"\u00c8 stato rilasciato Node.js 14.0, la piattaforma per l'esecuzione.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-14-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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 14.0 | ProHoster","og:description":"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 14.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.","og:url":"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-14-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":"2020-04-23T11:42:02+00:00","article:modified_time":"2020-04-23T11:42:02+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"78969","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-02-28 16:47:25","updated":"2022-10-01 20:48:10","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/78969","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=78969"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/78969\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=78969"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=78969"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=78969"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}