{"id":44810,"date":"2021-05-03T09:13:02","date_gmt":"2021-05-03T07:13:02","guid":{"rendered":"https:\/\/kinsta.com\/?post_type=knowledgebase&#038;p=93827"},"modified":"2025-10-01T20:49:08","modified_gmt":"2025-10-01T19:49:08","slug":"node-js","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/node-js\/","title":{"rendered":"Cos&#8217;\u00c8 Node.js e Perch\u00e9 Utilizzarlo"},"content":{"rendered":"<p>JavaScript \u00e8 uno dei linguaggi di programmazione pi\u00f9 popolari al mondo. Oggi alimenta milioni di siti web e ha attratto frotte di sviluppatori e designer per creare funzioni per il web. Se siete alle prime armi con la programmazione, sappiate che JavaScript \u00e8 probabilmente uno dei <a href=\"https:\/\/kinsta.com\/it\/blog\/miglior-linguaggio-di-programmazione\/\">migliori linguaggi di programmazione<\/a> da apprendere.<\/p>\n<p>Nei suoi primi 20 anni, JavaScript \u00e8 stato utilizzato principalmente per lo scripting lato client. Dato che JavaScript poteva essere utilizzato solo all&#8217;interno del tag <code>&lt;script&gt;<\/code>, gli sviluppatori dovevano lavorare contemporaneamente con pi\u00f9 linguaggi e framework tra i componenti di front-end e back-end. Poi \u00e8 arrivato Node.js, che \u00e8 un ambiente run-time che include tutto ci\u00f2 che serve per eseguire un programma scritto in JavaScript.<\/p>\n<p>Node.js \u00e8 un ambiente runtime single-threaded, open-source e multipiattaforma per la creazione di applicazioni server-side e di networking veloci e scalabili. Gira sul motore di runtime JavaScript V8 e usa un&#8217;architettura I\/O event-driven e non bloccante, il che lo rende efficiente e adatto ad applicazioni real-time.<\/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<h3>In Cosa \u00e8 Scritto Node.js?<\/h3>\n<p>Node.js \u00e8 scritto in C, C++ e JavaScript.<\/p>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Node.js\">Wikipedia definisce Node.js<\/a> come &#8220;una compilazione del motore JavaScript V8 di Google, livello di astrazione della piattaforma libuv e una libreria core, che \u00e8 essa stessa scritta principalmente in JavaScript&#8221;.<\/p>\n<p>Il runtime usa internamente <a href=\"https:\/\/en.wikipedia.org\/wiki\/Chrome_V8\">Chrome V8<\/a>, che \u00e8 il motore di esecuzione di JavaScript, anche questo anche scritto in C++. Questo aggiunge ulteriori casi d&#8217;uso al repertorio di Node.js, come l&#8217;accesso alle funzionalit\u00e0 interne del sistema (come il networking).<\/p>\n<h2>Architettura e Funzionamento di Node.js<\/h2>\n<p>Node.js utilizza l&#8217;architettura &#8220;Single Threaded Event Loop&#8221; per gestire pi\u00f9 client allo stesso tempo. Per capire quanto sia diverso da altri runtime, abbiamo prima bisogno di capire come vengono gestiti i client multi-thread concorrenti in linguaggi come Java.<\/p>\n<p>In un modello di richiesta-risposta multithread, pi\u00f9 client inviano una richiesta e il server elabora ognuna di esse prima di inviare la risposta. Tuttavia, per elaborare le chiamate concorrenti vengono utilizzati pi\u00f9 thread. Questi thread sono definiti in un pool di thread e, ogni volta che arriva una richiesta, viene assegnato un singolo thread per gestirla.<\/p>\n<figure id=\"attachment_92199\" aria-describedby=\"caption-attachment-92199\" style=\"width: 1024px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/03\/Nodejs-Architecture.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-92199 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/03\/Nodejs-Architecture-1024x576.png\" alt=\" Come node.js elabora le richieste in arrivo utilizzando il loop degli eventi\" width=\"1024\" height=\"576\"><\/a><figcaption id=\"caption-attachment-92199\" class=\"wp-caption-text\">Come node.js elabora le richieste in arrivo utilizzando il loop degli eventi<\/figcaption><\/figure>\n<p>Node.js funziona in modo diverso. Diamo un&#8217;occhiata a tutti i passaggi:<\/p>\n<ol>\n<li>Per servire le richieste, Node.js mantiene un pool di thread limitato.<\/li>\n<li>Ogni volta che arriva una richiesta, Node.js la mette in una coda.<\/li>\n<li>Ora entra in scena il &#8220;ciclo di eventi&#8221; a thread singolo &#8211; il componente core. Questo ciclo di eventi aspetta le richieste a tempo indeterminato.<\/li>\n<li>Quando arriva una richiesta, il ciclo la prende dalla coda e controlla se questa richiede un&#8217;operazione di input\/output (I\/O) bloccante. In caso contrario, elabora la richiesta e invia una risposta.<\/li>\n<li>Se la richiesta deve eseguire un&#8217;operazione bloccante, per elaborare la richiesta il ciclo dell&#8217;evento assegna un thread dal pool di thread interni. I thread interni disponibili sono limitati. Questo gruppo di thread ausiliari \u00e8 chiamato worker group.<\/li>\n<li>Il ciclo degli eventi tiene traccia delle richieste bloccanti e le mette in coda una volta che il task bloccante \u00e8 stato elaborato. In questo modo mantiene la sua natura non bloccante.<\/li>\n<\/ol>\n<p>Dato che Node.js utilizza un minor numero di thread, utilizza anche meno risorse\/memoria, con conseguente esecuzione pi\u00f9 veloce dei task. Quindi, per i nostri scopi, questa architettura a thread singolo \u00e8 equivalente all&#8217;architettura a thread multiplo. Quando uno ha bisogno di elaborare task ad alta intensit\u00e0 di dati, allora ha pi\u00f9 senso utilizzare linguaggi multi-thread come Java. Ma per applicazioni real-time, Node.js \u00e8 la scelta pi\u00f9 ovvia.<\/p>\n<h2>Caratteristiche di Node.js<\/h2>\n<p>Node.js \u00e8 cresciuto rapidamente negli ultimi anni. Questo grazie al lungo elenco di funzionalit\u00e0:<\/p>\n<ol>\n<li><strong>Semplice<\/strong> &#8211; Iniziare a lavorare con Node.js \u00e8 abbastanza facile. \u00c8 una scelta obbligata per i principianti del web development. Con moltissimi tutorial e una grande community, iniziare \u00e8 davvero molto facile.<\/li>\n<li><strong>Scalabile<\/strong> &#8211; Offre una grande scalabilit\u00e0 per le applicazioni. Essendo single-threaded, Node.js \u00e8 in grado di gestire un enorme numero di connessioni contemporanee con elevata portata.<\/li>\n<li><strong>Velocit\u00e0<\/strong> &#8211; L&#8217;esecuzione non bloccante dei thread rende Node.js ancora pi\u00f9 veloce ed efficiente.<\/li>\n<li><strong>Pacchetti<\/strong> &#8211; Esiste un vasto set di pacchetti Node.js open-source che pu\u00f2 semplificare il vostro lavoro. Oggi ci sono oltre un milione di pacchetti nell&#8217;ecosistema NPM.<\/li>\n<li><strong>Solido backend<\/strong> &#8211; Node.js \u00e8 scritto in C e C++, il che lo rende veloce e aggiunge funzionalit\u00e0 come il supporto di rete.<\/li>\n<li><strong>Multipiattaforma<\/strong> &#8211; Il supporto multipiattaforma permette di creare siti web SaaS, applicazioni desktop e anche applicazioni mobili, <a href=\"https:\/\/sevalla.com\/application-hosting\/\">tutto questo solo con Node.js<\/a>.<\/li>\n<li><strong>Mantenibile<\/strong> &#8211; Node.js \u00e8 una scelta abbastanza semplice per gli sviluppatori poich\u00e9 sia il frontend che il backend possono essere gestiti esclusivamente con JavaScript.<\/li>\n<\/ol>\n<h2>Dimensioni del Mercato<\/h2>\n<p>Negli ultimi 2 decenni c&#8217;\u00e8 stata un aumento enorme del numero dei siti web e, come previsto, anche Node.js sta crescendo velocemente. Il popolare runtime ha gi\u00e0 superato la soglia di <strong>1 miliardo di download<\/strong> nel 2018 e, <a href=\"https:\/\/w3techs.com\/technologies\/details\/ws-nodejs\">secondo W3Techs<\/a>, \u00e8 utilizzato dall&#8217;<strong>1,2%<\/strong> di tutti i siti web. Si tratta di oltre 20 milioni di siti in totale.<\/p>\n<p>Non sorprende che sia una scelta popolare anche per milioni di aziende. Eccone alcune delle pi\u00f9 famose:<\/p>\n<ul>\n<li>Twitter<\/li>\n<li>Spotify<\/li>\n<li>eBay<\/li>\n<li>Reddit<\/li>\n<li>LinkedIn<\/li>\n<li>Godaddy<\/li>\n<\/ul>\n<h2>Applicazioni di Node.js<\/h2>\n<figure id=\"attachment_92201\" aria-describedby=\"caption-attachment-92201\" style=\"width: 1024px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/03\/nodejs-applications.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-92201 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/03\/nodejs-applications.png\" alt=\"Applicazioni di Node.js\" width=\"1024\" height=\"768\"><\/a><figcaption id=\"caption-attachment-92201\" class=\"wp-caption-text\">Applicazioni di Node.js<\/figcaption><\/figure>\n<p>Node.js \u00e8 utilizzato per un&#8217;ampia variet\u00e0 di applicazioni. Analizziamo alcuni casi d&#8217;uso comuni per i quali Node.js viene considerato una buona scelta:<\/p>\n<ol>\n<li><strong>Chat in tempo reale<\/strong> &#8211; Grazie alla sua natura asincrona a thread singolo, Node.js \u00e8 adatto per elaborare comunicazioni in tempo reale. Pu\u00f2 scalare facilmente ed \u00e8 spesso utilizzato nella costruzione di chatbot. Node.js permette anche di creare facilmente funzioni di chat aggiuntive come la chat multi-person e le notifiche push.<\/li>\n<li><strong>Internet of Things<\/strong> &#8211; Le Applicazioni-IoT di solito comprendono pi\u00f9 sensori, dato che inviano spesso piccoli blocchi di dati che possono accumularsi in un gran numero di richieste. Node.js \u00e8 un&#8217;ottima scelta perch\u00e9 \u00e8 in grado di gestire con rapidit\u00e0 richieste concorrenti.<\/li>\n<li><strong>Streaming dei dati<\/strong> &#8211; Aziende come Netflix usano Node.js per lo streaming. Ci\u00f2 \u00e8 dovuto principalmente al fatto che Node.js \u00e8 leggero e veloce. Inoltre Node.js fornisce un&#8217;API di streaming nativa. Questi flussi permettono agli utenti di fare richieste in pipe, con il risultato che i dati vengono trasmessi direttamente alla loro destinazione finale.<\/li>\n<li><strong>Applicazioni complesse a pagina singola (SPA)<\/strong> &#8211; Nelle SPA, l&#8217;intera applicazione viene caricata in una singola pagina. Questo di solito significa che ci sono alcune richieste eseguite in background per componenti specifici. Viene qui in soccorso il ciclo di eventi di Node.js, dato che elabora le richieste in modo non bloccante.<\/li>\n<li><strong>Applicazioni basate su REST API<\/strong> &#8211; JavaScript \u00e8 utilizzato sia nel frontend che nel backend dei siti. Cos\u00ec, un server pu\u00f2 facilmente comunicare con il frontend tramite API REST utilizzando Node.js. Node.js fornisce anche pacchetti come Express.js e Koa, che rendono ancora pi\u00f9 facile la costruzione di applicazioni web.<\/li>\n<\/ol>\n<h2>Node.js \u00c8 un Linguaggio di Programmazione?<\/h2>\n<p>In una sola parola: <strong>no<\/strong>.<\/p>\n<p>Node.js non \u00e8 un linguaggio di programmazione. \u00c8 un ambiente runtime che viene utilizzato per eseguire JavaScript al di fuori del browser.<\/p>\n<p>Node.js non \u00e8 un framework (una piattaforma per sviluppare applicazioni software). Il runtime di Node.js \u00e8 costruito sopra un linguaggio di programmazione &#8211; in questo caso, JavaScript &#8211; e consente di eseguire i framework stessi.<\/p>\n<p>Per riassumere, Node.js non \u00e8 n\u00e9 un linguaggio di programmazione n\u00e9 un framework; \u00e8 un ambiente per la loro esecuzione.<\/p>\n<h2>Node.js \u00e8 Frontend o Backend?<\/h2>\n<p>Un malinteso comune tra gli sviluppatori \u00e8 che Node.js sia un framework backend utilizzato esclusivamente per costruire server. Questo non \u00e8 vero: Node.js pu\u00f2 essere utilizzato sia sul frontend che sul backend.<\/p>\n<p>Una delle ragioni per cui i framework Node.js sono una scelta molto popolare tra gli sviluppatori che costruiscono un backend flessibile e scalabile \u00e8 nella sua natura event-driven e non bloccante. Ma gli <a href=\"https:\/\/kinsta.com\/it\/blog\/sviluppatore-backend\/\">sviluppatori frontend<\/a> vedranno altrettanto chiaramente nel loro lavoro questi vantaggi offerti da Node.js.<\/p>\n<p>Perch\u00e9 Node.js funziona sia per il backend che per il frontend?<\/p>\n<ol>\n<li><strong>Riusabilit\u00e0<\/strong> &#8211; JavaScript \u00e8 un linguaggio molto utilizzato sia per il backend che per il frontend, con l&#8217;aiuto di framework come Express.js e Meteor.js. Alcuni stack popolari come <a href=\"https:\/\/www.mongodb.com\/mern-stack\">MERN<\/a> utilizzano Express.js come backend (un framework Node.js). Inoltre, tra frontend e backend possono essere riutilizzati pi\u00f9 componenti.<\/li>\n<li><strong>Produttivit\u00e0 ed efficienza degli sviluppatori<\/strong> &#8211; Grazie alla riduzione del passaggio di contesto tra pi\u00f9 linguaggi, si pu\u00f2 permettere agli sviluppatori di risparmiare molto tempo. Utilizzare JavaScript sia per il backend che per il frontend porta ad una maggiore efficienza, dato che molti strumenti sono comuni ad entrambi.<\/li>\n<li><strong>Enorme community<\/strong> &#8211; Una fiorente community online contribuisce alla velocit\u00e0 di un ciclo di sviluppo di successo. Quando vi bloccate su un problema, c&#8217;\u00e8 una buona probabilit\u00e0 che qualcuno l&#8217;abbia gi\u00e0 risolto e abbia condiviso la soluzione su Stack Overflow. Node.js fa grande uso di questa community attiva e impegnata.<\/li>\n<\/ol>\n<h2>Come Iniziare con Node.js<\/h2>\n<p>Decidere da dove iniziare con Node.js pu\u00f2 spaventare. Per fortuna \u00e8 abbastanza semplice da installare. Una volta fatto, sarete in grado di provarlo da soli.<\/p>\n<h2>Come Installare Node.js<\/h2>\n<p>Se avete gi\u00e0 installato Node.js, passate pure oltre questa sezione.<\/p>\n<h3>Su macOS<\/h3>\n<p><strong>Con Bash su Mac<\/strong><\/p>\n<pre><code class=\"language-bash\">curl \"https:\/\/nodejs.org\/dist\/latest\/node-${VERSION:-$(wget -qO- https:\/\/nodejs.org\/dist\/latest\/ | sed -nE 's|.*&gt;node-(.*)\\.pkg.*|\\1|p')}.pkg\" &gt; \"$HOME\/Downloads\/node-latest.pkg\" && sudo installer -store -pkg \"$HOME\/Downloads\/node-latest.pkg\" -target \"\/\"\n<\/code><\/pre>\n<p><strong>Con Homebrew su Mac<\/strong><\/p>\n<pre><code class=\"language-bash\">brew install node<\/code><\/pre>\n<h3>Su Windows<\/h3>\n<p>Scaricate il <a href=\"https:\/\/nodejs.org\/en\/#home-downloadhead\">Windows Installer<\/a> direttamente dal sito di <a href=\"https:\/\/nodejs.org\/\">nodejs.org<\/a>.<\/p>\n<h3>Su Linux<\/h3>\n<p>Su Ubuntu 18.04+ potete installare Node utilizzando i seguenti comandi.<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt install nodejs<\/code><\/pre>\n<h2>Verificare la Versione di Node.js Installata<\/h2>\n<p>Nella sezione precedente, abbiamo visto come installare Node. Ora verifichiamo la versione installata. Eseguite il seguente comando nel terminale.<\/p>\n<pre><code class=\"language-bash\">node -v<\/code><\/pre>\n<p>Potete anche controllare tramite il flag pi\u00f9 lungo<\/p>\n<pre><code class=\"language-bash\">node --version<\/code><\/pre>\n<p>Dovreste vedere un output simile a questo, anche se il numero di versione potrebbe essere diverso.<\/p>\n<pre><code>v14.16.0<\/code><code class=\"language-bash\"><\/code><\/pre>\n<h2>Cos&#8217;\u00e8 NPM?<\/h2>\n<p><a href=\"https:\/\/www.npmjs.com\/\">NPM<\/a> \u00e8 il sistema di pacchetti di Node.js. \u00c8 il pi\u00f9 grande ecosistema di tutte le librerie open-source del mondo, con oltre 1 milione di pacchetti, in continuo aumento. NPM \u00e8 gratuito e gode del contributo quotidiano di migliaia di sviluppatori open source.<\/p>\n<p>NPM \u00e8 dotato di una utility a riga di comando pronta all&#8217;uso. Vi basta semplicemente andare sul <a href=\"https:\/\/www.npmjs.com\/search?q=keywords:packages\">sito web di NPM<\/a>, cercare il pacchetto di cui avete bisogno e installarlo con un singolo comando. Tramite questa utility a riga di comando, potete anche gestire le versioni del vostro pacchetto, rivedere le dipendenze ed anche impostare script personalizzati nei vostri progetti. Senza dubbio, NPM \u00e8 il patrimonio pi\u00f9 amato della community di Node.js; Node.js attrae un gran numero di sviluppatori soprattutto grazie al suo eccellente supporto dei pacchetti.<\/p>\n<h3>Installare i Pacchetti NPM via CLI<\/h3>\n<p>Con Node.js viene automaticamente installato NPM. Nelle sezioni precedenti abbiamo spiegato come installare Node.js, quindi ora vediamo qual \u00e8 il comando per installare un pacchetto con NPM:<\/p>\n<pre><code class=\"language-bash\">npm install &lt;package-name&gt;<\/code><\/pre>\n<p>S\u00ec, \u00e8 proprio cos\u00ec facile! Potete anche installare pi\u00f9 pacchetti in una volta sola:<\/p>\n<pre><code class=\"language-bash\">npm install &lt;pkg-1&gt; &lt;pkg-2&gt; &lt;pkg-3&gt;<\/code><\/pre>\n<p>Potete specificare il flag <strong>-g<\/strong> (global) per installare un pacchetto nel contesto globale. Questo vi permette di utilizzare il pacchetto ovunque voi siate sulla vostra macchina.<\/p>\n<p>Quando inizializzate una nuova applicazione, NPM crea automaticamente un file <strong>package.json<\/strong> che consiste in tutti i pacchetti NPM. \u00c8 qui che potete specificare versioni, dipendenze e script personalizzati.<\/p>\n<p>C&#8217;\u00e8 un lungo elenco di comandi insieme alla utility NPM, tra cui <code>publish<\/code>, <code>audit<\/code>, <code>run<\/code> e altro. Potete scoprire come utilizzarli con il comando <code>npm help<\/code>.<\/p>\n<figure id=\"attachment_93419\" aria-describedby=\"caption-attachment-93419\" style=\"width: 685px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-93419 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/04\/node-and-npm-version.png\" alt=\"Versione di Node e npm.\" width=\"685\" height=\"547\"><figcaption id=\"caption-attachment-93419\" class=\"wp-caption-text\">Versione di Node e npm.<\/figcaption><\/figure>\n<h3>Pacchetti Popolari<\/h3>\n<p>Ecco alcuni dei pacchetti pi\u00f9 popolari di Node.js oggi:<\/p>\n<ul>\n<li><a href=\"http:\/\/expressjs.com\"><strong>Express<\/strong><\/a> &#8211; Express.js, o semplicemente Express, \u00e8 un framework di sviluppo web ispirato a Sinatra per Node.js ed \u00e8 lo standard de-facto per la maggior parte delle applicazioni Node.js.<\/li>\n<li><a href=\"https:\/\/npmjs.org\/package\/mongodb\"><strong>MongoDB<\/strong><\/a> &#8211; \u00c8 il driver ufficiale di MongoDB. Fornisce l&#8217;API per i database a oggetti MongoDB in Node.js.<\/li>\n<li><a href=\"http:\/\/socket.io\"><strong>Socket.io<\/strong><\/a> &#8211; Socket permette una comunicazione in tempo reale, bidirezionale e basata sugli eventi.<\/li>\n<li><a href=\"https:\/\/www.npmjs.com\/package\/lodash\"><strong>Lodash<\/strong><\/a> &#8211; Lodash rende JavaScript pi\u00f9 facile, togliendo il fastidio di lavorare con array, numeri, oggetti, stringhe, ecc.<\/li>\n<li><a href=\"https:\/\/www.npmjs.com\/package\/moment\"><strong>Moment<\/strong><\/a> &#8211; \u00c8 una libreria di gestione delle date in JavaScript che consente di analizzare, validare, manipolare e formattare le date.<\/li>\n<li><a href=\"https:\/\/www.npmjs.com\/package\/commander\"><strong>Commander.js<\/strong><\/a> &#8211; Questo \u00e8 tutto ci\u00f2 di cui avete bisogno per lavorare con interfacce a riga di comando per node.js.<\/li>\n<li><a href=\"https:\/\/npmjs.org\/package\/forever\"><strong>Forever<\/strong><\/a> &#8211; Un semplice strumento CLI per assicurare che un dato script venga eseguito continuamente (cio\u00e8 per sempre). Mantiene il vostro processo Node.js in produzione di fronte a qualsiasi fallimento inaspettato.<\/li>\n<li><a href=\"https:\/\/www.npmjs.com\/package\/async\"><strong>Async<\/strong><\/a> &#8211; Un modulo di utilit\u00e0 che fornisce funzioni semplici e potenti per lavorare con JavaScript in modalit\u00e0 asincrona.<\/li>\n<li><a href=\"https:\/\/github.com\/mranney\/node_redis\"><strong>Redis<\/strong><\/a> &#8211; Una libreria client per l&#8217;integrazione del database <a href=\"https:\/\/kinsta.com\/it\/docs\/hosting-wordpress\/cache\/cache-redis\/\">Redis<\/a>.<\/li>\n<li><a href=\"https:\/\/github.com\/mochajs\/mocha\"><strong>Mocha<\/strong><\/a> &#8211; Un framework di test JavaScript pulito e flessibile per Node.js e per il browser.<\/li>\n<li><a href=\"https:\/\/github.com\/jaredhanson\/passport\"><strong>Passport<\/strong><\/a> &#8211; Autenticazione semplice e discreta per Node.js. L&#8217;unico scopo di Passport \u00e8 quello di autenticare le richieste.<\/li>\n<\/ul>\n<h2>Hello World in Node.js<\/h2>\n<p>Come sempre, iniziamo con il programma base &#8220;Hello World&#8221;, dove creiamo un server in Node.js che restituir\u00e0 un output &#8220;Hello World&#8221; su richiesta del server. Prima di iniziare, assicuratevi di avere un <a href=\"https:\/\/kinsta.com\/it\/blog\/migliori-editor-di-testo\/\">buon editor di testo<\/a>.<\/p>\n<p>Una volta aperto il vostro editor di testo, ecco il codice da usare per il vostro programma &#8220;Hello World&#8221;:<\/p>\n<pre><code class=\"language-js\">\/\/ server.js\nconst http = require('http');\n\nconst hostname = '127.0.0.1';\nconst port = 3000;\n\nconst server = http.createServer((req, res) =&gt; {\n  res.statusCode = 200;\n  res.setHeader('Content-Type', 'text\/plain');\n  res.end('Hello World! Welcome to Node.js');\n});\n\nserver.listen(port, hostname, () =&gt; {\n  console.log(`Server running at http:\/\/${hostname}:${port}\/`);\n});\n<\/code><\/pre>\n<p>Salvate questo file come `server.js` e poi andate al terminale e avviate il server con il comando<\/p>\n<pre><code class=\"language-js\">node server.js\n<\/code><\/pre>\n<p>Il server dovrebbe ora iniziare a lavorare. Per verificare l&#8217;output, aprite <em>http:\/\/localhost:3000<\/em> nel vostro browser. Dovreste vedere il messaggio &#8211;<\/p>\n<pre><code class=\"language-js\">Hello World! Welcome to Node.js\n<\/code><\/pre>\n<h3>Spiegazione di Hello World Server<\/h3>\n<p>Node.js \u00e8 dotato di un modulo integrato chiamato &#8220;HTTP&#8221; che permette a Node.js di trasferire dati tramite il <a href=\"https:\/\/kinsta.com\/it\/blog\/wordpress-http-api-parte-1\/#what-is-http\">protocollo HyperText Transfer Protocol (HTTP)<\/a>.<\/p>\n<p>Nel codice qui sopra, prima carichiamo il modulo <strong>http<\/strong> nel nostro programma, poi utilizziamo il metodo <strong>createServer<\/strong> per accettare una richiesta e restituire una risposta con un codice di stato. Infine, ascoltiamo su una porta definita.<\/p>\n<p>Congratulazioni, avete appena creato il vostro primo server in Node.js! Nella prossima sezione, vedremo come utilizzare il framework Express per creare un server.<\/p>\n<h2>Creare un Server con Express<\/h2>\n<p>In primo luogo, dovremmo spiegare su cosa sia un server. Un server \u00e8 responsabile di raccogliere le richieste dei client tramite il suo software (pi\u00f9 comunemente <a href=\"https:\/\/kinsta.com\/it\/blog\/cosa-e-apache\/\">Apache<\/a> o <a href=\"https:\/\/kinsta.com\/it\/blog\/cosa-e-nginx\/\">Nginx<\/a>), eseguire la serie di task richiesti e, infine, inviare le risposte ai client. Express \u00e8 un framework che ci aiuta a creare un server in Node.<\/p>\n<p>Express.js \u00e8 un framework per applicazioni web Node.js minimale e flessibile, dotato di un solido set di funzioni per applicazioni web e mobile. Permette di aggiungere tabelle route e di impostare il middleware nella vostra applicazione. Potete installare Express con il seguente comando.<\/p>\n<pre><code class=\"language-bash\">npm install express --save<\/code><\/pre>\n<p>Nella sezione precedente, per creare un server abbiamo utilizzato la utility <strong>http<\/strong> integrata. Ora creiamo un server &#8220;Hello World&#8221; utilizzando Express.js.<\/p>\n<p>Aprite il vostro editor di testo e inserite questo codice:<\/p>\n<pre><code class=\"language-js\">\n\/\/ server-express.js\nconst express = require('express')\nconst app = express() \/\/ initialize app\nconst port = 3000\n\n\/\/ GET callback function returns a response message\napp.get('\/', (req, res) =&gt; {\nres.send('Hello World! Welcome to Node.js')\n})\n\napp.listen(port, () =&gt; {\nconsole.log(`Server listening at http:\/\/localhost:${port}`)\n})\n<\/code><\/pre>\n<p>Successivamente, eseguiremo il nostro server con il seguente comando.<\/p>\n<pre><code class=\"language-bash\">node server-express.js\n<\/code><\/pre>\n<p>Ora digitate <em>http:\/\/localhost:3000<\/em> nel vostro browser per vedere qual \u00e8 l&#8217;output di &#8220;Hello World&#8221;.<\/p>\n<h2>Riepilogo<\/h2>\n<p>In sintesi, Node.js \u00e8 un popolare ambiente di programmazione che pu\u00f2 essere utilizzato per costruire applicazioni su larga scala che hanno bisogno di supportare pi\u00f9 richieste concorrenti. L&#8217;I\/O single-threaded non bloccante lo rende una scelta eccellente sia per applicazioni real-time che per lo streaming dei dati.<\/p>\n<p>Node.js ha anche una imponente community di sviluppatori attivi e vanta il pi\u00f9 grande repository di pacchetti open-source del mondo, NPM, che al momento conta oltre un milione di pacchetti.<\/p>\n<p>\u00c8 facile iniziare a lavorare con Node.js. Abbiamo spiegato come installare e creare un server in Node.js, quindi tutto ci\u00f2 che vi rimane da fare \u00e8 pensare a come utilizzare e implementare Node.js nel vostro stack. Potete anche allargare le vostre conoscenze consultando la documentazione ufficiale di Node.js su <a href=\"https:\/\/nodejs.dev\/learn\">nodejs.dev<\/a>.<\/p>\n<kinsta-video src=\"https:\/\/www.youtube.com\/watch?v=vmNem6wxfSQ\"><\/kinsta-video>\n","protected":false},"excerpt":{"rendered":"<p>JavaScript \u00e8 uno dei linguaggi di programmazione pi\u00f9 popolari al mondo. Oggi alimenta milioni di siti web e ha attratto frotte di sviluppatori e designer per &#8230;<\/p>\n","protected":false},"author":166,"featured_media":44815,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[25918,26203],"class_list":["post-44810","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-framework-javascript","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>Cos&#039;\u00e8 Node.js e perch\u00e9 dovresti usarlo<\/title>\n<meta name=\"description\" content=\"Node.js \u00e8 un ambiente JavaScript event-driven altamente scalabile. In questo articolo scoprirete di pi\u00f9 su Node.js, sulla sua architettura, come utilizzarlo e altro ancora.\" \/>\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\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cos&#039;\u00c8 Node.js e Perch\u00e9 Utilizzarlo\" \/>\n<meta property=\"og:description\" content=\"Node.js \u00e8 un ambiente JavaScript event-driven altamente scalabile. In questo articolo scoprirete di pi\u00f9 su Node.js, sulla sua architettura, come utilizzarlo e altro ancora.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/node-js\/\" \/>\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=\"2021-05-03T07:13:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-01T19:49:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2021\/05\/cose-node-js.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Mohit Khare\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Node.js \u00e8 un ambiente JavaScript event-driven altamente scalabile. In questo articolo scoprirete di pi\u00f9 su Node.js, sulla sua architettura, come utilizzarlo e altro ancora.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2021\/05\/cose-node-js.jpeg\" \/>\n<meta name=\"twitter:creator\" content=\"@mkfeuhrer\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mohit Khare\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 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\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/node-js\/\"},\"author\":{\"name\":\"Mohit Khare\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/9732e9984155d30593951b35641d45bc\"},\"headline\":\"Cos&#8217;\u00c8 Node.js e Perch\u00e9 Utilizzarlo\",\"datePublished\":\"2021-05-03T07:13:02+00:00\",\"dateModified\":\"2025-10-01T19:49:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/node-js\/\"},\"wordCount\":2619,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/node-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2021\/05\/cose-node-js.jpeg\",\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/node-js\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/node-js\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/node-js\/\",\"name\":\"Cos'\u00e8 Node.js e perch\u00e9 dovresti usarlo\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/node-js\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/node-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2021\/05\/cose-node-js.jpeg\",\"datePublished\":\"2021-05-03T07:13:02+00:00\",\"dateModified\":\"2025-10-01T19:49:08+00:00\",\"description\":\"Node.js \u00e8 un ambiente JavaScript event-driven altamente scalabile. In questo articolo scoprirete di pi\u00f9 su Node.js, sulla sua architettura, come utilizzarlo e altro ancora.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/node-js\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/node-js\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/node-js\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2021\/05\/cose-node-js.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2021\/05\/cose-node-js.jpeg\",\"width\":1024,\"height\":512,\"caption\":\"cose-node-js\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/node-js\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Framework JavaScript\",\"item\":\"https:\/\/kinsta.com\/it\/argomenti\/framework-javascript\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Cos&#8217;\u00c8 Node.js e Perch\u00e9 Utilizzarlo\"}]},{\"@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\/9732e9984155d30593951b35641d45bc\",\"name\":\"Mohit Khare\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/20a9f3cdac263d3cce62849265bd90c1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/20a9f3cdac263d3cce62849265bd90c1?s=96&d=mm&r=g\",\"caption\":\"Mohit Khare\"},\"description\":\"Developer soul from India who loves building and breaking stuff. I share learnings on my blog and on Twitter - @mkfeuhrer Let's build something together :)\",\"sameAs\":[\"https:\/\/www.mohitkhare.com\/\",\"https:\/\/www.linkedin.com\/in\/mohitkhare1996\/\",\"https:\/\/x.com\/mkfeuhrer\"],\"url\":\"https:\/\/kinsta.com\/it\/blog\/author\/mohit\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Cos'\u00e8 Node.js e perch\u00e9 dovresti usarlo","description":"Node.js \u00e8 un ambiente JavaScript event-driven altamente scalabile. In questo articolo scoprirete di pi\u00f9 su Node.js, sulla sua architettura, come utilizzarlo e altro ancora.","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\/","og_locale":"it_IT","og_type":"article","og_title":"Cos'\u00c8 Node.js e Perch\u00e9 Utilizzarlo","og_description":"Node.js \u00e8 un ambiente JavaScript event-driven altamente scalabile. In questo articolo scoprirete di pi\u00f9 su Node.js, sulla sua architettura, come utilizzarlo e altro ancora.","og_url":"https:\/\/kinsta.com\/it\/blog\/node-js\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2021-05-03T07:13:02+00:00","article_modified_time":"2025-10-01T19:49:08+00:00","og_image":[{"width":1024,"height":512,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2021\/05\/cose-node-js.jpeg","type":"image\/jpeg"}],"author":"Mohit Khare","twitter_card":"summary_large_image","twitter_description":"Node.js \u00e8 un ambiente JavaScript event-driven altamente scalabile. In questo articolo scoprirete di pi\u00f9 su Node.js, sulla sua architettura, come utilizzarlo e altro ancora.","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2021\/05\/cose-node-js.jpeg","twitter_creator":"@mkfeuhrer","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Mohit Khare","Tempo di lettura stimato":"13 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/node-js\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/node-js\/"},"author":{"name":"Mohit Khare","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/9732e9984155d30593951b35641d45bc"},"headline":"Cos&#8217;\u00c8 Node.js e Perch\u00e9 Utilizzarlo","datePublished":"2021-05-03T07:13:02+00:00","dateModified":"2025-10-01T19:49:08+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/node-js\/"},"wordCount":2619,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/node-js\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2021\/05\/cose-node-js.jpeg","inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/it\/blog\/node-js\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/node-js\/","url":"https:\/\/kinsta.com\/it\/blog\/node-js\/","name":"Cos'\u00e8 Node.js e perch\u00e9 dovresti usarlo","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/node-js\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/node-js\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2021\/05\/cose-node-js.jpeg","datePublished":"2021-05-03T07:13:02+00:00","dateModified":"2025-10-01T19:49:08+00:00","description":"Node.js \u00e8 un ambiente JavaScript event-driven altamente scalabile. In questo articolo scoprirete di pi\u00f9 su Node.js, sulla sua architettura, come utilizzarlo e altro ancora.","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/node-js\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/node-js\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/node-js\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2021\/05\/cose-node-js.jpeg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2021\/05\/cose-node-js.jpeg","width":1024,"height":512,"caption":"cose-node-js"},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/node-js\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"Framework JavaScript","item":"https:\/\/kinsta.com\/it\/argomenti\/framework-javascript\/"},{"@type":"ListItem","position":3,"name":"Cos&#8217;\u00c8 Node.js e Perch\u00e9 Utilizzarlo"}]},{"@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\/9732e9984155d30593951b35641d45bc","name":"Mohit Khare","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/20a9f3cdac263d3cce62849265bd90c1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/20a9f3cdac263d3cce62849265bd90c1?s=96&d=mm&r=g","caption":"Mohit Khare"},"description":"Developer soul from India who loves building and breaking stuff. I share learnings on my blog and on Twitter - @mkfeuhrer Let's build something together :)","sameAs":["https:\/\/www.mohitkhare.com\/","https:\/\/www.linkedin.com\/in\/mohitkhare1996\/","https:\/\/x.com\/mkfeuhrer"],"url":"https:\/\/kinsta.com\/it\/blog\/author\/mohit\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/44810","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\/166"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=44810"}],"version-history":[{"count":11,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/44810\/revisions"}],"predecessor-version":[{"id":69898,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/44810\/revisions\/69898"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/44810\/translations\/en"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/44810\/translations\/fr"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/44810\/translations\/it"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/44810\/translations\/es"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/44810\/translations\/pt"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/44810\/translations\/nl"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/44810\/translations\/de"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/44810\/translations\/se"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/44810\/translations\/jp"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/44810\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/44815"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=44810"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=44810"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=44810"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}