{"id":68439,"date":"2023-05-02T15:40:14","date_gmt":"2023-05-02T14:40:14","guid":{"rendered":"https:\/\/kinsta.com\/it\/?p=68439&#038;preview=true&#038;preview_id=68439"},"modified":"2023-05-05T07:04:21","modified_gmt":"2023-05-05T06:04:21","slug":"node-js-20","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/node-js-20\/","title":{"rendered":"Novit\u00e0 di Node.js v20 (Test Runner, Modello di Autorizzazione, SEA, V8 JS Engine 11.3)"},"content":{"rendered":"<p>Node.js v20 \u00e8 finalmente disponibile! Il 18 aprile 2023 \u00e8 stato reso pubblico e ora pu\u00f2 essere usato da chiunque. Con questa versione, Node.js dovrebbe essere molto pi\u00f9 sicuro e performante.<\/p>\n<p>\u00c8 importante sapere che, trattandosi di una versione pari, \u00e8 destinata a diventare una versione di supporto a lungo termine (LTS) a ottobre 2023 e sar\u00e0 supportata fino ad aprile 2026. Tuttavia, il team di Node.js sta richiedendo il feedback della comunit\u00e0 per identificare e risolvere eventuali problemi prima che venga promossa a versione LTS.<\/p>\n<p>Questa nuova versione di Node.js porta con s\u00e9 interessanti aggiornamenti e funzionalit\u00e0 che <a href=\"https:\/\/kinsta.com\/it\/blog\/tipi-di-developer\/\">chi lavora nello sviluppo<\/a> apprezzer\u00e0 sicuramente, come il modello di autorizzazione sperimentale, <code>import.meta.resolve<\/code> sincrono, un test runner stabile, l&#8217;aggiornamento del motore JavaScript V8 alla versione 11.3, con miglioramenti delle prestazioni e correzioni di bug, e molto altro ancora.<\/p>\n<p>In questo articolo esploreremo i cambiamenti introdotti in Node.js v20, dando uno sguardo approfondito alle sue nuove caratteristiche e funzionalit\u00e0.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Come Iniziare a Usare Node.js v20<\/h2>\n<p>L&#8217;installazione di Node.js v20 \u00e8 abbastanza simile a quella delle altre versioni di <a href=\"https:\/\/kinsta.com\/it\/blog\/node-js\/\">Node.js<\/a>. Tutto ci\u00f2 che dovete fare \u00e8:<\/p>\n<ol start=\"1\">\n<li style=\"list-style-type: none\">\n<ol start=\"1\">\n<li>Scaricare il pacchetto di installazione dal <a href=\"https:\/\/nodejs.org\/en\/download\/current\" target=\"_blank\" rel=\"noopener noreferrer\">sito ufficiale di Node.js<\/a>.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<ol start=\"1\">\n<li>Una volta scaricato il programma di installazione, eseguitelo e seguite le istruzioni per completare il processo di installazione. Il processo \u00e8 piuttosto semplice e dovete solo accettare il contratto di licenza e fare clic sul pulsante &#8220;Avanti&#8221;.<\/li>\n<li>Riavviate il vostro sistema\/macchina al termine del processo di installazione per assicurarvi che tutte le modifiche abbiano effetto.<\/li>\n<li>Verificate l&#8217;installazione di Node.js con il seguente comando:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">node -v<\/code><\/pre>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/04\/verify-node-v20-instalation.jpg\" alt=\"Schermata dell\u2019editor con i comandi di verifica dell\u2019installazione di Node.js v20\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">Installazione di Node.js v20<\/figcaption><\/figure>\n<p>Se vedete il numero di versione (v20.0.0), significa che Node.js \u00e8 stato installato correttamente e che tutto \u00e8 pronto per iniziare a lavorare con Node.js v20.<\/p>\n\n<h2>Cosa c&#8217;\u00e8 di Nuovo in Node.js v20?<\/h2>\n<p>Vediamo i 5 principali aggiornamenti introdotti con questa versione di Node.js. Queste caratteristiche includono:<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"decimal\" selector=\"h3\" count-number=\"5\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<h3>Modello di Autorizzazione Sperimentale<\/h3>\n<p>L&#8217;introduzione del Modello di Autorizzazione sperimentale in Node.js v20 \u00e8 un&#8217;aggiunta significativa che offre un maggiore controllo sull&#8217;accesso a risorse specifiche durante l&#8217;esecuzione.<\/p>\n<p>Questa nuova funzione \u00e8 utile quando la sicurezza e l&#8217;utilizzo delle risorse sono fondamentali, come per esempio in un ambiente di produzione.<\/p>\n<p>Il Modello di Autorizzazione offre diverse possibilit\u00e0, tra cui la limitazione dell&#8217;accesso al file system, ai child_process, ai worker_thread e agli addon nativi.<\/p>\n<p>Potete usare flag come <code>--allow-fs-read<\/code>, <code>--allow-fs-write<\/code> e <code>--allow-child-process<\/code> per specificare quali risorse sono accessibili. Per attivare questi flag, dovete usare il flag <code>--experimental-permission<\/code> in combinazione con i permessi richiesti.<\/p>\n<p>Ecco un esempio di come usare il Modello di Autorizzazione per consentire l&#8217;accesso in lettura e scrittura all&#8217;intero file system:<\/p>\n<pre><code class=\"language-bash\">$ node --experimental-permission --allow-fs-read=* --allow-fs-write=* index.js<\/code><\/pre>\n<p>Potete anche usare il Modello di Autorizzazione per specificare l&#8217;accesso a cartelle e file specifici. Per esempio, il seguente comando consente l&#8217;accesso in scrittura alla cartella <strong>\/tmp\/<\/strong>:<\/p>\n<pre><code class=\"language-bash\">$ node --experimental-permission --allow-fs-write=\/tmp\/ --allow-fs-read=\/home\/index.js index.js<\/code><\/pre>\n<p>Un vantaggio significativo del Modello di Autorizzazione \u00e8 la possibilit\u00e0 di esercitare un controllo pi\u00f9 granulare sull&#8217;accesso al file system. Per esempio, potete specificare percorsi e modelli di caratteri jolly per consentire l&#8217;accesso a cartelle o file specifici.<\/p>\n<pre><code class=\"language-bash\">$ node --experimental-permission --allow-fs-read=\/home\/user\/* index.js<\/code><\/pre>\n<p>Il comando sopra riportato consente l&#8217;accesso in lettura a tutte le cartelle della directory <strong>\/home\/user\/<\/strong>.<\/p>\n<p>La propriet\u00e0 permission dell&#8217;oggetto processo pu\u00f2 essere utilizzata anche per verificare se uno specifico permesso \u00e8 stato concesso in fase di esecuzione. Per esempio, se volete verificare se il vostro processo Node.js ha accesso in lettura a una cartella specifica, <strong>\/home\/user\/documents<\/strong>, potete usare il seguente codice:<\/p>\n<pre><code class=\"language-js\">if (process.permission.has('fs.read', '\/home\/user\/documents')) {\n  console.log('Read access granted to \/home\/user\/documents');\n} else {\n  console.log('Read access not granted to \/home\/user\/documents');\n}<\/code><\/pre>\n<p>Utilizzando il Modello di Autorizzazione, potete avere un controllo pi\u00f9 preciso sull&#8217;accesso al file system dei vostri processi Node.js, il che pu\u00f2 portare a una maggiore sicurezza e a un utilizzo pi\u00f9 efficiente delle risorse.<\/p>\n<p>\u00c8 importante notare che il Modello di Autorizzazione \u00e8 ancora sperimentale e potrebbe cambiare nelle future versioni di Node.js. \u00c8 consigliabile rimanere aggiornati sulla <a href=\"https:\/\/nodejs.org\/api\/permissions.html#process-based-permissions\" target=\"_blank\" rel=\"noopener noreferrer\">documentazione del Modello di Autorizzazione<\/a> e usare con cautela queste funzioni sperimentali.<\/p>\n<h3>Test Runner Stabile<\/h3>\n<p>Node.js v20 include una versione stabile del modulo test_runner che vi permette di costruire ed eseguire suite di test <a href=\"https:\/\/kinsta.com\/javascript\/\">JavaScript<\/a> in modo semplice e veloce senza installare dipendenze aggiuntive.<\/p>\n<p>Il test runner stabile ora include diversi blocchi di costruzione, come <code>describe<\/code>, <code>it<\/code>\/<code>test<\/code>, e hooks, per la creazione e la strutturazione dei file di test, oltre a mocking, watch mode e la possibilit\u00e0 di eseguire pi\u00f9 file di test in parallelo utilizzando il comando <code>node --test<\/code>.<\/p>\n<p>Ecco un esempio di utilizzo del test runner:<\/p>\n<pre><code class=\"language-js\">import { test, mock } from 'node:test';\nimport assert from 'node:assert';\nimport fs from 'node:fs';\n\nmock.method(fs, 'readFile', async () =&gt; \"Hello World\");\ntest('synchronous passing test', async (t) =&gt; {\n  \/\/ This test passes because it does not throw an exception.\n  assert.strictEqual(await fs.readFile('a.txt'), \"Hello World\");\n});<\/code><\/pre>\n<p>Il test runner offre reporter di test configurabili e personalizzati tramite il flag <code>--test-reporter<\/code>, copertura sperimentale dei test tramite il flag <code>--experimental-test-coverage<\/code> e funzionalit\u00e0 di mocking.<\/p>\n<p>Pur non essendo destinato a sostituire framework di test completi come <a href=\"https:\/\/jestjs.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Jest<\/a> o <a href=\"https:\/\/mochajs.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Mocha<\/a>, il test runner stabile offre un modo semplice e veloce per creare suite di test. \u00c8 stato migliorato in modo significativo dalla sua introduzione in Node.js v19 e, grazie ai test e ai feedback degli utenti finali, ora \u00e8 stato contrassegnato come stabile in Node.js v20.<\/p>\n<p>Trovate maggiori informazioni in questa <a href=\"https:\/\/github.com\/nodejs\/node\/pull\/46983\" target=\"_blank\" rel=\"noopener noreferrer\">richiesta di pull unificata<\/a>.<\/p>\n<h3>Motore JavaScript V8 Aggiornato a 11.3<\/h3>\n<p>Il <a href=\"https:\/\/kinsta.com\/it\/blog\/debug-node\/#use-the-v8-inspector\">motore JavaScript V8<\/a>, che alimenta Node.js, \u00e8 stato aggiornato alla versione 11.3 in Node.js v20. Questo aggiornamento migliora le prestazioni e introduce nuove funzionalit\u00e0 del linguaggio. Tra le novit\u00e0 di questo aggiornamento ci sono:<\/p>\n<ul>\n<li><code>String.prototype.isWellFormed<\/code> e <code>toWellFormed<\/code>: Questi metodi sono particolarmente utili per garantire il corretto formato delle stringhe. Aiutano a garantire che le stringhe inserite dall&#8217;utente siano nel formato UTF-16 corretto, riducendo gli errori nell&#8217;era delle emoji.<\/li>\n<li>Metodi che modificano Array e TypedArray tramite copia: questo pu\u00f2 essere utile per creare copie modificate di array senza intaccare i dati originali, il che \u00e8 particolarmente importante nei casi in cui \u00e8 necessario conservare i dati originali per un confronto o per altri scopi.<\/li>\n<li>Resizable <code>ArrayBuffer<\/code> e growable <code>SharedArrayBuffer<\/code>: offre una maggiore flessibilit\u00e0, consentendo un&#8217;allocazione pi\u00f9 efficiente della memoria.<\/li>\n<li>Flag RegExp v con notazione set e propriet\u00e0 delle stringhe: aggiunge funzionalit\u00e0 per le espressioni regolari.<\/li>\n<li>WebAssembly tail call: fornisce un modo per ottimizzare alcuni tipi di chiamate di funzione.<\/li>\n<\/ul>\n<p>Questi aggiornamenti dimostrano il costante impegno della comunit\u00e0 di developer di Node.js nel migliorare le prestazioni e le funzionalit\u00e0.<\/p>\n<h3>Import.meta.resolve() Sincrono<\/h3>\n<p>In Node.js v20 \u00e8 stato introdotto <code>import.meta.resolve()<\/code>, che facilita la scrittura di script non sensibili alla posizione. Questa funzione restituisce risultati in modo sincrono, in modo simile al comportamento del browser, consentendo un&#8217;esecuzione pi\u00f9 efficiente.<\/p>\n<p>Gli hook di risoluzione del caricatore utente possono ancora essere definiti come funzione asincrona, ma <code>import.meta.resolve()<\/code> continuer\u00e0 a restituire in modo sincrono per il codice dell&#8217;applicazione anche se vengono caricati hook di risoluzione asincroni.<\/p>\n<p>Il comportamento sincrono di <code>import.meta.resolve()<\/code> consente un&#8217;esecuzione pi\u00f9 efficiente del codice, soprattutto quando si tratta di grandi quantit\u00e0 di dati. Come autore, potete definire gli hook di risoluzione come funzioni asincrone o sincrone, a seconda delle vostre preferenze. Il codice dell&#8217;applicazione verr\u00e0 comunque eseguito in modo sincrono indipendentemente dal fatto che siano stati caricati dei resolve hook async.<\/p>\n<h3>Experimental Single Executable Applications (SEA)<\/h3>\n<p>Experimental Single Executable Applications (SEA) \u00e8 una nuova funzionalit\u00e0 introdotta in Node.js v20 che permette di unire la vostra applicazione al binario di Node.js, consentendo agli utenti finali di distribuirla ed eseguirla come un unico file eseguibile.<\/p>\n<p>Si tratta di una richiesta avanzata da tempo dalla comunit\u00e0 e il team ha perfezionato l&#8217;approccio nel corso dell&#8217;ultimo anno.<\/p>\n<p>In Node.js v20, la creazione di un&#8217;unica applicazione eseguibile richiede l&#8217;iniezione di un blob preparato da Node.js a partire da una configurazione JSON piuttosto che l&#8217;iniezione del file JS grezzo.<\/p>\n<p>Un blob \u00e8 un file che contiene dati binari, in questo caso preparati da Node.js, e viene iniettato nel binario. Questa modifica \u00e8 stata apportata per consentire l&#8217;incorporazione di pi\u00f9 risorse coesistenti nella SEA, il che apre nuovi casi d&#8217;uso.<\/p>\n<p>Ecco un esempio di file <strong>sea-config.json<\/strong>:<\/p>\n<pre><code class=\"language-js\">{\n  \t\"main\": \"myscript.js\",\n  \t\"output\": \"sea-prep.blob\"\n}<\/code><\/pre>\n<p>Quando viene eseguito con il comando <code>node --experimental-sea-config sea-config.json<\/code>, il blob viene scritto nel file <strong>sea-prep.blob<\/strong>, che pu\u00f2 essere iniettato nel binario.<\/p>\n<p>La funzione SEA vi consente di distribuire <a href=\"https:\/\/docs.sevalla.com\/templates\/overview\">applicazioni Node.js<\/a> senza richiedere agli utenti di <a href=\"https:\/\/kinsta.com\/it\/blog\/come-installare-node-js\/\">installare Node.js<\/a>. La funzionalit\u00e0 \u00e8 stata creata da <a href=\"https:\/\/github.com\/RaisinTen\">Darshan Sen<\/a>, che ha vinto il premio Outstanding Contribution from a New Arrival nell&#8217;ambito dei JavaScriptLandia Awards all&#8217;OpenJS World.<\/p>\n<p>Microsoft, membro della OpenJS Foundation, sta studiando questa funzionalit\u00e0 come un modo per ridurre gli attacchi vettoriali e potenziare l&#8217;architettura Node.js per una migliore esperienza. Sebbene la funzione SEA sia ancora sperimentale, rappresenta un nuovo ed entusiasmante sviluppo per la comunit\u00e0 Node.js.<\/p>\n<h3>Prestazioni<\/h3>\n<p>Node.js v20 \u00e8 dotato di miglioramenti significativi al suo runtime, con una rinnovata attenzione alle prestazioni da parte del nuovo team Node.js performance. I miglioramenti includono ottimizzazioni delle parti fondamentali del runtime, come URL, <code>fetch()<\/code> e <code>EventTarget<\/code>.<\/p>\n<p>Uno dei miglioramenti pi\u00f9 significativi \u00e8 la riduzione del costo di inizializzazione di <code>EventTarget<\/code>, che \u00e8 stato dimezzato, con un conseguente accesso pi\u00f9 rapido a tutti i sottosistemi che lo usano. Inoltre, le chiamate API V8 Fast sono state utilizzate per migliorare le prestazioni di API come <code>URL.canParse()<\/code> e i timer.<\/p>\n<p>Un altro cambiamento specifico \u00e8 l&#8217;inclusione della versione 2.0 aggiornata di Ada, un parser di URL veloce e conforme alle specifiche scritto in C++.<\/p>\n\n<h2>Riepilogo<\/h2>\n<p>In questo articolo abbiamo presentato alcune delle principali caratteristiche (sperimentali e stabili) e dei miglioramenti apportati da Node.js v20, come i miglioramenti al motore JavaScript V8, le prestazioni, il test runner e l&#8217;introduzione di un modello di autorizzazione sperimentale e di applicazioni a esecuzione singola.<\/p>\n<p>\u00c8 importante sapere che Node.js v14 terminer\u00e0 il suo ciclo di vita ad aprile 2023, quindi \u00e8 consigliabile iniziare a pianificare l&#8217;aggiornamento a Node.js v18 (LTS) o a vNode.js 20 (che diventer\u00e0 presto una versione LTS).<\/p>\n<p>Volete provare l&#8217;ultima versione di Node.js? Potete farlo distribuendo la vostra <a href=\"https:\/\/sevalla.com\/application-hosting\/\">applicazione Node.js su Kinsta<\/a>, i primi 20 dollari saranno a carico nostro. Supportiamo gi\u00e0 Node.js v20, il che significa che potrete testare le sue nuove caratteristiche e funzionalit\u00e0 a partire da oggi.<\/p>\n<p><em>Ora tocca a voi! Quali sono le caratteristiche o i miglioramenti pi\u00f9 interessanti di Node.js v20? Ce ne sono di significative che ci sono sfuggite? Fatecelo sapere nei commenti.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Node.js v20 \u00e8 finalmente disponibile! Il 18 aprile 2023 \u00e8 stato reso pubblico e ora pu\u00f2 essere usato da chiunque. Con questa versione, Node.js dovrebbe essere &#8230;<\/p>\n","protected":false},"author":287,"featured_media":68440,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[26203],"class_list":["post-68439","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-node-js"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Novit\u00e0 di Node.js v20 (Test Runner, Modello di Autorizzazione, SEA, V8 JS Engine 11.3)- Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Node.js v20 \u00e8 finalmente disponibile. Ecco le novit\u00e0 di questa versione, tra cui Test Runner, Modello di Autorizzazione, SEA e V8 JS Engine 11.3.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/it\/blog\/node-js-20\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Novit\u00e0 di Node.js v20 (Test Runner, Modello di Autorizzazione, SEA, V8 JS Engine 11.3)\" \/>\n<meta property=\"og:description\" content=\"Node.js v20 \u00e8 finalmente disponibile. Ecco le novit\u00e0 di questa versione, tra cui Test Runner, Modello di Autorizzazione, SEA e V8 JS Engine 11.3.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/node-js-20\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstaitalia\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-02T14:40:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-05T06:04:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/05\/node-js-20.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"6084\" \/>\n\t<meta property=\"og:image:height\" content=\"3042\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Joel Olawanle\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Node.js v20 \u00e8 finalmente disponibile. Ecco le novit\u00e0 di questa versione, tra cui Test Runner, Modello di Autorizzazione, SEA e V8 JS Engine 11.3.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/05\/node-js-20.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@olawanle_joel\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/node-js-20\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/node-js-20\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"Novit\u00e0 di Node.js v20 (Test Runner, Modello di Autorizzazione, SEA, V8 JS Engine 11.3)\",\"datePublished\":\"2023-05-02T14:40:14+00:00\",\"dateModified\":\"2023-05-05T06:04:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/node-js-20\/\"},\"wordCount\":1749,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/node-js-20\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/05\/node-js-20.jpg\",\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/node-js-20\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/node-js-20\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/node-js-20\/\",\"name\":\"Novit\u00e0 di Node.js v20 (Test Runner, Modello di Autorizzazione, SEA, V8 JS Engine 11.3)- Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/node-js-20\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/node-js-20\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/05\/node-js-20.jpg\",\"datePublished\":\"2023-05-02T14:40:14+00:00\",\"dateModified\":\"2023-05-05T06:04:21+00:00\",\"description\":\"Node.js v20 \u00e8 finalmente disponibile. Ecco le novit\u00e0 di questa versione, tra cui Test Runner, Modello di Autorizzazione, SEA e V8 JS Engine 11.3.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/node-js-20\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/node-js-20\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/node-js-20\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/05\/node-js-20.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/05\/node-js-20.jpg\",\"width\":6084,\"height\":3042},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/node-js-20\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Node.js\",\"item\":\"https:\/\/kinsta.com\/it\/argomenti\/node-js\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Novit\u00e0 di Node.js v20 (Test Runner, Modello di Autorizzazione, SEA, V8 JS Engine 11.3)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/it\/#website\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluzioni di hosting premium, veloci e sicure\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/it\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstaitalia\/\",\"https:\/\/x.com\/Kinsta_IT\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"caption\":\"Joel Olawanle\"},\"description\":\"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.\",\"sameAs\":[\"https:\/\/joelolawanle.com\/\",\"https:\/\/www.linkedin.com\/in\/olawanlejoel\/\",\"https:\/\/x.com\/olawanle_joel\",\"https:\/\/www.youtube.com\/@joelolawanle\"],\"gender\":\"male\",\"knowsAbout\":[\"JavaScript\",\"React\",\"Next.js\"],\"knowsLanguage\":[\"English\"],\"jobTitle\":\"Technical Editor\",\"worksFor\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Novit\u00e0 di Node.js v20 (Test Runner, Modello di Autorizzazione, SEA, V8 JS Engine 11.3)- Kinsta\u00ae","description":"Node.js v20 \u00e8 finalmente disponibile. Ecco le novit\u00e0 di questa versione, tra cui Test Runner, Modello di Autorizzazione, SEA e V8 JS Engine 11.3.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/it\/blog\/node-js-20\/","og_locale":"it_IT","og_type":"article","og_title":"Novit\u00e0 di Node.js v20 (Test Runner, Modello di Autorizzazione, SEA, V8 JS Engine 11.3)","og_description":"Node.js v20 \u00e8 finalmente disponibile. Ecco le novit\u00e0 di questa versione, tra cui Test Runner, Modello di Autorizzazione, SEA e V8 JS Engine 11.3.","og_url":"https:\/\/kinsta.com\/it\/blog\/node-js-20\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2023-05-02T14:40:14+00:00","article_modified_time":"2023-05-05T06:04:21+00:00","og_image":[{"width":6084,"height":3042,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/05\/node-js-20.jpg","type":"image\/jpeg"}],"author":"Joel Olawanle","twitter_card":"summary_large_image","twitter_description":"Node.js v20 \u00e8 finalmente disponibile. Ecco le novit\u00e0 di questa versione, tra cui Test Runner, Modello di Autorizzazione, SEA e V8 JS Engine 11.3.","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/05\/node-js-20.jpg","twitter_creator":"@olawanle_joel","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Joel Olawanle","Tempo di lettura stimato":"9 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/node-js-20\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/node-js-20\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"Novit\u00e0 di Node.js v20 (Test Runner, Modello di Autorizzazione, SEA, V8 JS Engine 11.3)","datePublished":"2023-05-02T14:40:14+00:00","dateModified":"2023-05-05T06:04:21+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/node-js-20\/"},"wordCount":1749,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/node-js-20\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/05\/node-js-20.jpg","inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/it\/blog\/node-js-20\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/node-js-20\/","url":"https:\/\/kinsta.com\/it\/blog\/node-js-20\/","name":"Novit\u00e0 di Node.js v20 (Test Runner, Modello di Autorizzazione, SEA, V8 JS Engine 11.3)- Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/node-js-20\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/node-js-20\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/05\/node-js-20.jpg","datePublished":"2023-05-02T14:40:14+00:00","dateModified":"2023-05-05T06:04:21+00:00","description":"Node.js v20 \u00e8 finalmente disponibile. Ecco le novit\u00e0 di questa versione, tra cui Test Runner, Modello di Autorizzazione, SEA e V8 JS Engine 11.3.","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/node-js-20\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/node-js-20\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/node-js-20\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/05\/node-js-20.jpg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/05\/node-js-20.jpg","width":6084,"height":3042},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/node-js-20\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"Node.js","item":"https:\/\/kinsta.com\/it\/argomenti\/node-js\/"},{"@type":"ListItem","position":3,"name":"Novit\u00e0 di Node.js v20 (Test Runner, Modello di Autorizzazione, SEA, V8 JS Engine 11.3)"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/it\/#website","url":"https:\/\/kinsta.com\/it\/","name":"Kinsta\u00ae","description":"Soluzioni di hosting premium, veloci e sicure","publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/it\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstaitalia\/","https:\/\/x.com\/Kinsta_IT","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","caption":"Joel Olawanle"},"description":"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.","sameAs":["https:\/\/joelolawanle.com\/","https:\/\/www.linkedin.com\/in\/olawanlejoel\/","https:\/\/x.com\/olawanle_joel","https:\/\/www.youtube.com\/@joelolawanle"],"gender":"male","knowsAbout":["JavaScript","React","Next.js"],"knowsLanguage":["English"],"jobTitle":"Technical Editor","worksFor":"Kinsta","url":"https:\/\/kinsta.com\/it\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/68439","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=68439"}],"version-history":[{"count":11,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/68439\/revisions"}],"predecessor-version":[{"id":68546,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/68439\/revisions\/68546"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68439\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68439\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68439\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68439\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68439\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68439\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68439\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68439\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68439\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68439\/translations\/dk"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68439\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/68440"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=68439"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=68439"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=68439"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}