Nodo.JS (Node.JS)

Node.js è un runtime JavaScript multipiattaforma open source che viene eseguito sui server. Dalla sua uscita nel 2009, questa piattaforma è diventata estremamente popolare e svolge un ruolo molto importante nel campo dello sviluppo web in questi giorni.
Per l'articolo completo su Node.JS ...

Mostra filtro
Filtri di hosting
A2 Themes & Host Me Filter

Sistema operativo

Spazio sul disco

Memoria RAM

Tipo di disco

Core della CPU

Ordinare

Trust Pilot Dream Host
Punteggio: 9.7
Dream Host Logo
Dream Host

Host da sogno

DreamObjects 40 GB
$0.95 /Mensile

Recensioni 3778

29 Buoni

Posizioni dei server


Dream Host Servers in Ashburnstati Uniti
Confrontare
Trust Pilot ICDSoft
Punteggio: 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - Europe
$8 /Mensile

Recensioni 233


Posizioni dei server


ICDSoft Servers in SofiaBulgaria ICDSoft Servers in Bostonstati Uniti ICDSoft Servers in Hong KongHong Kong
Confrontare
Trust Pilot ICDSoft
Punteggio: 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - USA
$8 /Mensile

Recensioni 233


Posizioni dei server


ICDSoft Servers in SofiaBulgaria ICDSoft Servers in Bostonstati Uniti ICDSoft Servers in Hong KongHong Kong
Confrontare
Punteggio: 9
A2hosting Logo
A2hosting

A2hosting

Lite
$3.92 /Mensile

50 Buoni

Posizioni dei server


A2hosting Servers in AmsterdamOlanda A2hosting Servers in Michiganstati Uniti A2hosting Servers in SingaporeSingapore
Confrontare
Trust Pilot Keliweb
Punteggio: 9.8
Keliweb Logo
Keliweb

Keliweb

Prime
$5.51 /Mensile

Recensioni 453


Posizioni dei server


Keliweb Servers in MilanoItalia
Confrontare
Trust Pilot JustHostMe
Punteggio: 9.4
JustHostMe Logo
JustHostMe

JustHostMe

Starter
$3.11 /Mensile

Recensioni 72


Posizioni dei server


JustHostMe Servers in United KingdomRegno Unito
Confrontare
Trust Pilot Dream VPS
Punteggio: 8.6
Dream VPS Logo
Dream VPS

Dream VPS

STARTER
$3.75 /Mensile

Recensioni 7


Posizioni dei server


Dream VPS Servers in Hong KongHong Kong Dream VPS Servers in Santa Clara Dream VPS Servers in New Yorkstati Uniti Dream VPS Servers in LondonRegno Unito Dream VPS Servers in AmsterdamOlanda Dream VPS Servers in FrankfurtGermania Dream VPS Servers in IsraelIsraele
Confrontare
Trust Pilot Reseller Cube
Punteggio: 8
Reseller Cube Logo
Reseller Cube

Cubo rivenditore

Basic USA
$5 /Mensile

Recensioni 4


Posizioni dei server


Reseller Cube Servers in Raleighstati Uniti
Confrontare
Trust Pilot Univa Host
Punteggio: 8
Univa Host Logo
Univa Host

Univa Host

E-ECONOMY
$2.99 /Mensile

Recensioni 3


Posizioni dei server


Univa Host Servers in GermanyGermania Univa Host Servers in United Statesstati Uniti
Confrontare
Trust Pilot OperaVPS
Punteggio: 7.8
OperaVPS Logo
OperaVPS

OperaVPS

Linux 512MB
$7.99 /Mensile

Recensioni 3


Posizioni dei server


OperaVPS Servers in United KingdomRegno Unito OperaVPS Servers in AustriaAustria OperaVPS Servers in CanadaCanada OperaVPS Servers in DenmarkDanimarca OperaVPS Servers in FranceFrancia OperaVPS Servers in GermanyGermania OperaVPS Servers in ItalyItalia OperaVPS Servers in NetherlandsOlanda OperaVPS Servers in RomaniaRomania OperaVPS Servers in United Statesstati Uniti
Confrontare
Trust Pilot L3Web Hosting
Punteggio: 7.6
L3Web Hosting Logo
L3Web Hosting

Hosting L3Web

START UP
$1.99 /Mensile

Recensioni 2


Posizioni dei server


L3Web Hosting Servers in IndiaIndia L3Web Hosting Servers in MunichGermania L3Web Hosting Servers in Miamistati Uniti L3Web Hosting Servers in SingaporeSingapore L3Web Hosting Servers in United KingdomRegno Unito
Confrontare
Trust Pilot Idea Stack
Punteggio: 7.4
Idea Stack Logo
Idea Stack

Stack di idee

LEVEL 1
$2 /Mensile

Recensioni 2


Posizioni dei server


Idea Stack Servers in Seattlestati Uniti
Confrontare
Trust Pilot Epic Host
Punteggio: 7.4
Epic Host Logo
Epic Host

Host epico

Cloud hosting
$2.37 /Mensile

Recensioni 1


Posizioni dei server


Epic Host Servers in New DelhiIndia Epic Host Servers in Unionstati Uniti
Confrontare
Trust Pilot itanets.co.uk
Punteggio: 7
itanets.co.uk Logo
itanets.co.uk

itanets.co.uk

JSP HOSTING 1
$5.19 /Mensile

Recensioni 2

Confrontare
Trust Pilot Digital Ocean
Punteggio: 3.8
Digital Ocean Logo
Digital Ocean

Oceano digitale

$5 /mo
$5 /Mensile

Recensioni 214

38 Buoni

Posizioni dei server


Digital Ocean Servers in IndiaIndia Digital Ocean Servers in New Yorkstati Uniti Digital Ocean Servers in AmsterdamOlanda Digital Ocean Servers in LondonRegno Unito Digital Ocean Servers in TorontoCanada Digital Ocean Servers in Frankfurt am MainGermania Digital Ocean Servers in SingaporeSingapore
Confrontare
Punteggio: 10
HOST PRO KE Logo
HOST PRO KE

HOST PRO KE

Host Pro Starter
$9.38 /Annuale


Posizioni dei server


HOST PRO KE Servers in GermanyGermania
Confrontare
Punteggio: 9.4
Accu WebHosting Logo
Accu WebHosting

Accu WebHosting

Windows Personal Web Hosting
$2.99 /Mensile

19 Buoni

Posizioni dei server


Accu WebHosting Servers in FranceFrancia Accu WebHosting Servers in Denverstati Uniti Accu WebHosting Servers in MumbaiIndia Accu WebHosting Servers in AmsterdamOlanda Accu WebHosting Servers in Frankfurt am MainGermania Accu WebHosting Servers in SydneyAustralia Accu WebHosting Servers in LondonRegno Unito Accu WebHosting Servers in PolandPolonia Accu WebHosting Servers in CanadaCanada Accu WebHosting Servers in SingaporeSingapore
Confrontare
Punteggio: 9
Be hostings Logo
Be hostings

Essere host

StarterSSL
$3.36 /Mensile


Posizioni dei server


Be hostings Servers in BrusselsBelgio
Confrontare
Punteggio: 4.3
Gear Host Logo
Gear Host

Gear Host

CloudSite Hobby
$5 /Mensile


Posizioni dei server


Gear Host Servers in Denverstati Uniti
Confrontare
Punteggio: 1
Mikro VPS Logo
Mikro VPS

Mikro VPS

VPS SSD 1
$4.39 /Mensile


Posizioni dei server


Mikro VPS Servers in BudapestUngheria
Confrontare
Punteggio: 0
Simple Node Logo
Simple Node

Nodo semplice

OpenVZ - 256MB
$3 /Mensile

Confrontare

 

Node.js

 

 

Node.js è un runtime JavaScript multipiattaforma open source che viene eseguito sui server. Dalla sua uscita nel 2009, questa piattaforma è diventata estremamente popolare e svolge un ruolo molto importante nel campo dello sviluppo web in questi giorni. Se consideriamo il numero di stelle che un progetto ha raccolto su GitHub come indicatore di popolarità, Node.js, che ha più di 50.000 stelle, è un progetto molto, molto popolare.

 

La piattaforma Node.js è basata sul motore JavaScript V8 di Google, che viene utilizzato nel browser Google Chrome. Questa piattaforma viene utilizzata principalmente per creare server Web, ma il suo ambito non si limita a questo.

 

Diamo un'occhiata alle caratteristiche principali di Node.js.

 

Velocità

 

Una delle principali attrazioni di Node.js è la velocità. Il codice JavaScript eseguito in Node.js può essere due volte più veloce del codice scritto in linguaggi compilati come C o Java e ordini di grandezza più veloci dei linguaggi interpretati come Python o Ruby. La ragione di ciò è l'architettura non bloccante della piattaforma, ei risultati specifici dipendono dai benchmark utilizzati, ma nel complesso Node.js è una piattaforma molto veloce.

 

Semplicità

 

La piattaforma Node.js è facile da imparare e da usare. In effetti, è decisamente molto semplice, soprattutto se paragonato ad altre piattaforme server.

 

JavaScript

 

JavaScript viene eseguito nell'ambiente Node.js. Ciò significa che milioni di sviluppatori front-end che già utilizzano JavaScript nel browser possono scrivere codice lato server e lato client nello stesso linguaggio di programmazione senza dover apprendere uno strumento completamente nuovo per passare allo sviluppo lato server.

 

Il browser e il server utilizzano gli stessi concetti di linguaggio. Inoltre, Node.js può passare rapidamente ai nuovi standard ECMAScript man mano che vengono implementati sulla piattaforma.

 

Non è necessario attendere che gli utenti aggiornino i propri browser poiché Node.js è un ambiente lato server che è completamente sotto il controllo dello sviluppatore. Di conseguenza, le nuove funzionalità della lingua diventano disponibili quando installi una versione di supporto di Node.js.

 

Motore V8

 

Il cuore di Node.js, tra le altre soluzioni, è il motore JavaScript V8 open source di Google, utilizzato in Google Chrome e altri browser. Ciò significa che Node.js si avvale di migliaia di ingegneri che hanno reso il runtime di JavaScript Chrome incredibilmente veloce e continuano a lavorare per migliorare V8.

 

Asincronia

 

Nei linguaggi di programmazione tradizionali (C, Java, Python, PHP), tutte le istruzioni si bloccano per impostazione predefinita, a meno che lo sviluppatore non si occupi esplicitamente di eseguire il codice in modo asincrono. Di conseguenza, se, ad esempio, in un tale ambiente, si effettua una richiesta di rete per scaricare del codice JSON, l'esecuzione del flusso da cui viene effettuata la richiesta verrà sospesa fino a quando la risposta non sarà ricevuta ed elaborata.

 

JavaScript rende molto più facile scrivere codice asincrono e non bloccante utilizzando un singolo thread, callback e un approccio allo sviluppo basato sugli eventi. Ogni volta che dobbiamo eseguire un'operazione pesante, passiamo una richiamata al meccanismo appropriato, che verrà chiamato immediatamente dopo il completamento di questa operazione. Di conseguenza, non è necessario attendere i risultati di tali operazioni affinché il programma continui a funzionare.

 

Un meccanismo simile è nato nei browser. Non possiamo permetterci di aspettare, diciamo, per unAJAXrichiesta di terminare senza essere in grado di rispondere alle azioni dell'utente, come i clic sui pulsanti. Per rendere comodo agli utenti il ​​lavoro con le pagine web, tutto, sia il download dei dati dalla rete che l'elaborazione dei clic sui pulsanti, deve avvenire simultaneamente, in tempo reale.

 

Se hai mai creato un gestore di eventi clic sul pulsante, hai già utilizzato tecniche di programmazione asincrona.

 

I meccanismi asincroni consentono a un singolo server Node.js di gestire contemporaneamente migliaia di connessioni senza gravare sul programmatore con la gestione dei thread e le attività di esecuzione del codice in parallelo. Tali cose sono spesso fonte di errore.

 

Node.js fornisce allo sviluppatore meccanismi di I / O di base non bloccanti e, in generale, le librerie utilizzate nel framework Node.js sono scritte utilizzando paradigmi non bloccanti.Ciò rende il comportamento di blocco l'eccezione piuttosto che la norma.

 

Quando Node.js deve eseguire un'operazione di I / O, come caricare dati dalla rete, accedere a un database o al file system, invece di bloccare il thread principale in attesa dei risultati di tale operazione, Node.js avvierà il suo esecuzione e continuare a fare altre cose fino a quando non vengono ricevuti i risultati di questa operazione.

 

Biblioteche

 

Con la facilità e la comodità di lavorare con un gestore di pacchetti per Node.js chiamato npm, l'ecosistema Node.js è fiorente. Ora ci sono oltre mezzo milione di pacchetti open source nel registro npm che qualsiasi sviluppatore Node.js può utilizzare liberamente.

 

Dopo aver esaminato alcune delle caratteristiche principali della piattaforma Node.js, proviamola in azione. Cominciamo con l'installazione.

 

 

Node.js

 

 

Installazione di Node.js

 

Node.js può essere installato in diversi modi, che tratteremo tra poco. Quindi, è possibile trovare i pacchetti di installazione ufficiali per tutte le principali piattaforme.

 

Esiste un altro modo molto conveniente per installare Node.js, ovvero utilizzare il gestore di pacchetti fornito nel sistema operativo. Ad esempio, il gestore di pacchetti macOS, che è lo standard de facto in quest'area, si chiama Homebrew.

 

Se ne hai uno sul tuo sistema, puoi installare Node.js eseguendo questo comando sulla riga di comando:

 

brew install node

 

Un elenco di gestori di pacchetti per altri sistemi operativi, inclusi Linux e Windows, può essere trovato qui.

 

Un popolare gestore di versioni di Node.js è nvm. Questo strumento ti consente di passare comodamente tra le diverse versioni di Node.js, con il suo aiuto puoi, ad esempio, installare e provare una nuova versione di Node.js e quindi, se necessario, ripristinare quella vecchia. Nvm è utile anche in una situazione in cui è necessario testare del codice su una vecchia versione di Node.js.

 

Per i principianti utilizzare gli installatori ufficiali di Node.js. Per gli utenti macOS, si consiglia di installare Node.js utilizzando Homebrew. Ora che hai installato Node.js, è il momento di scrivere "Hello World".

 

Prima applicazione Node.js.

 

L'esempio più comune di una prima applicazione Node.js è un semplice server web. Ecco il suo codice:

const http = require ('http')

const hostname = '127.0.0.1'

porta const = 3000

const server = http.createServer ((req, res) = & gt; {

res.statusCode = 200

res.setHeader ('Content-Type', 'text / plain')

res.end ('Hello World \ n')

})

server.listen (porta, nome host, () = & gt; {

console.log (`Server in esecuzione su http: // $ {hostname}: $ {port} /`)

})

 

Per eseguire questo codice, salvarlo in un file server.js ed eseguire il seguente comando nel terminale:

 

node server.js

 

Per controllare il server, aprire un browser e inserire nella barra degli indirizzi http://127.0.0.1:3000, ovvero l'indirizzo del server che verrà visualizzato nella console dopo il suo avvio riuscito. Se tutto funziona come dovrebbe, la pagina mostrerà "Hello World".

 

Diamo un'occhiata a questo esempio.

 

Innanzitutto, nota che il codice contiene il comando per connettere il modulo HTTP.

 

La piattaforma Node.js ha un eccellente set standard di moduli, che include meccanismi ben sviluppati per lavorare con la rete.

Il metodo dell'oggetto createServer () http crea un nuovo server HTTP e lo restituisce.

 

Il server è configurato per ascoltare su una porta specifica su un host specifico. Quando il server è pronto, viene chiamata la richiamata corrispondente, informandoci che il server è in esecuzione.

Quando il server riceve una richiesta, viene generato un evento richiesta che fornisce due oggetti. La prima è la richiesta (req, l'oggetto http.IncomingMessage), la seconda è la risposta (res, l'oggetto http.ServerResponse). Sono i meccanismi più importanti per la gestione delle richieste HTTP.

 

Il primo ci fornisce le informazioni sulla richiesta. Nel nostro semplice esempio, non utilizziamo questi dati, ma, se necessario, utilizzando l'oggetto, req è possibile accedere alle intestazioni della richiesta e ai dati in esso passati.

 

Il secondo è necessario per formare e inviare una risposta a una richiesta.

 

In questo caso, formiamo la risposta alla richiesta come segue. Innanzitutto, impostiamo il codice di stato della proprietà su un valore di 200, che indica un'operazione riuscita:

 

res.statusCode = 200

Successivamente, impostiamo il titolo Content-Type:

res.setHeader ('Content-Type', 'text / plain')

Completiamo quindi la preparazione della risposta aggiungendo il suo contenuto come argomento al metodo end ():

res.end ('Hello World \ n')

 

Abbiamo già accennato al fatto che attorno alla piattaforma Node.js si è formato un potente ecosistema. Parliamo ora di alcuni framework popolari e strumenti di supporto per Node.js.

 

Framework e strumenti di supporto per Node.js

 

Node.js è una piattaforma di basso livello. Per semplificare lo sviluppo e rendere la vita più facile ai programmatori, è stato creato un numero enorme di librerie. Alcuni di loro sono diventati molto popolari nel tempo. Ecco un piccolo elenco di librerie che penso siano ben fatte e che vale la pena esplorare:

 

Esprimere: Questa libreria fornisce allo sviluppatore uno strumento estremamente semplice ma potente per la creazione di server web. La chiave del successo di Express è stata un approccio minimalista e un focus sui meccanismi di base lato server senza cercare di imporre una visione di architettura server "one-stop".

 

Meteora: È un potente framework full-stack che adotta un approccio isomorfico per sviluppare applicazioni JavaScript e utilizzare codice sia sul client che sul server. Once Meteor era uno strumento autonomo che include tutto ciò di cui uno sviluppatore potrebbe aver bisogno. Ora si integra anche con le librerie di frontend come React, Vue e Angular. Meteor, oltre a sviluppare applicazioni web comuni, può essere utilizzato anche nello sviluppo mobile.

 

Koa: Questo framework Web è stato creato dallo stesso team di Express. Basandosi su anni di esperienza con Express, è stato sviluppato con particolare attenzione alla semplicità e alla compattezza. Questo progetto è nato come soluzione al problema di apportare modifiche importanti a Express che sono incompatibili con altri meccanismi di framework che potrebbero dividere la comunità.

 

Next.js: Questo framework è progettato per organizzare il rendering lato server delle applicazioni React.

 

Micro: È una libreria molto leggera per la creazione di microservizi HTTP asincroni.

Socket.io. È una libreria per lo sviluppo di applicazioni di rete in tempo reale.

 

In effetti, nell'ecosistema Node.js, puoi trovare una libreria di supporto per quasi tutte le attività. Come puoi immaginare, ci vuole molto tempo per costruire un tale ecosistema. La piattaforma Node.js è apparsa nel 2009. Durante la sua esistenza, sono successe molte cose che dovrebbero essere note a un programmatore che vuole imparare questa piattaforma.

 

Una breve storia di Node.js

 

Node.js compie 9 anni quest'anno. Questo, ovviamente, non è tanto quando si confronta questa età con l'età di JavaScript, che ha già 23 anni, o con l'età di 25 anni del web come la conosciamo se conti dall'avvento del Mosaico browser.

 

9 anni sono poco per la tecnologia, ma ora sembra che la piattaforma Node.js sia sempre esistita.

 

Con Node.js dalle prime versioni della piattaforma quando aveva solo 2 anni. Anche allora, nonostante il fatto che non ci fossero così tante informazioni su Node.js, si poteva già sentire che Node.js è molto serio.

 

Ora parliamo delle tecnologie alla base di Node.js e diamo una rapida occhiata al fileprincipali sviluppi relativi a questa piattaforma.

 

Quindi JavaScript è un linguaggio di programmazione che è stato creato in Netscape come linguaggio di scripting per la manipolazione delle pagine web nel browser Netscape Navigator.

Parte dell'attività di Netscape consisteva nella vendita di server web, che includeva un ambiente chiamato Netscape LiveWire. Ti ha permesso di creare pagine web dinamiche utilizzando JavaScript lato server.

 

l'idea di utilizzare JS per lo sviluppo lato server è molto più vecchia di Node.js. Questa idea è vecchia quasi quanto JavaScript stesso, ma all'epoca in questione, il JS lato server non era popolare.

 

Uno dei fattori chiave che ha reso la piattaforma Node.js così diffusa e popolare è stato quando è apparso per la prima volta. Quindi, alcuni anni prima, JavaScript aveva iniziato a essere considerato un linguaggio serio. Ciò è avvenuto grazie ad applicazioni Web 2.0 come Google Maps o Gmail, che hanno mostrato al mondo la potenza delle moderne tecnologie web.

 

Grazie alla guerra competitiva dei browser, che continua ancora oggi, le prestazioni dei motori JavaScript sono notevolmente aumentate. I team di sviluppo dietro i principali browser lavorano ogni giorno per migliorare le prestazioni delle loro soluzioni, il che ha un effetto benefico su JavaScript in generale.

 

Uno di questi motori è il già citato V8, utilizzato nel browser Chrome e utilizzato in Node.js. È uno dei risultati degli sviluppatori di browser che cercano di ottenere codice JavaScript ad alte prestazioni.

 

Ovviamente la popolarità di Node.js non si basa solo su una fortunata coincidenza e sul fatto che la piattaforma sia nata al momento giusto. Ha presentato al mondo un approccio innovativo allo sviluppo di JavaScript lato server. Diamo un'occhiata alle principali pietre miliari nella storia di Node.js.

 

2009


  • L'emergere di Node.js

  • Realizzare la prima variante npm.

 

2010

  • L'apparizione di Express.

  • L'emergere di Socket.io.

 

2011


  • Versione 1.0 di Npm.

  • Grandi aziende come LinkedIn e Uber hanno iniziato a utilizzare Node.js.

 

2012


  • Il rapido aumento della popolarità di Node.js.

 

2013


  • L'emergere di Ghost, la prima grande piattaforma per le pubblicazioni che utilizza Node.js.

  • Rilascio di Koa.

 

2014


  • Quest'anno si sono verificati eventi drammatici. È apparso il progetto IO.js, che è un fork di Node.js, il cui scopo, tra le altre cose, era introdurre il supporto ES6 e accelerare lo sviluppo della piattaforma.

 

2015


  • Viene fondata la Fondazione Node.js.

  • Unione di IO.js e Node.js.

  • In npm diventa possibile lavorare con moduli privati.

  • Resa Node.js 4 (va notato che le versioni 1, 2 e 3 della piattaforma non lo erano).

 

2016


  • Incidente del pacchetto del pad sinistro.

  • L'emergere di Yarn.

  • Versione di Node.js 6.

 

2017


  • Npm sta iniziando a prestare maggiore attenzione alla sicurezza.

  • Versione Node.js 8

  • L'emergere del supporto per HTTP / 2.

  • V8 è ufficialmente riconosciuto come motore JS progettato non solo per Chrome ma anche per Node.

  • Ci sono 3 miliardi di download npm ogni settimana.

 

2018


  • Versione di Node.js 10.

  • Supporto per moduli ES.

  • Supporto sperimentale di mjs.