- by Roberto Paolucci
- 16 Dicembre 2022
DeveloPress.it sta caricando
Tempo di lettura: 2 minuti
JavaScript è ormai una delle lingue di programmazione più diffuse al mondo, ma spesso viene associata principalmente alla programmazione lato client, ovvero nel browser. Tuttavia, con l’introduzione di Node.js, JavaScript ha conquistato anche il mondo del server-side development, aprendo nuove opportunità e creando applicazioni web altamente performanti e scalabili.
Node.js è un ambiente di runtime JavaScript lato server che utilizza il motore JavaScript V8 di Google Chrome. Creato da Ryan Dahl e rilasciato nel 2009, Node.js ha rivoluzionato il mondo dello sviluppo web consentendo agli sviluppatori di utilizzare JavaScript sia lato client che lato server. Questo ha portato a una maggiore coerenza nello sviluppo delle applicazioni web e all’eliminazione della necessità di apprendere un linguaggio diverso per il backend.
Node.js è noto per essere event-driven e non bloccante. Questo significa che le operazioni di I/O (input/output) non bloccano il thread principale, consentendo al server di gestire molte connessioni simultaneamente in modo efficiente. Questo è particolarmente utile per le applicazioni in tempo reale come le chat online e i giochi multiplayer.
Node.js è dotato di npm, il gestore di pacchetti più grande al mondo, che offre una vasta libreria di moduli e librerie pronte all’uso. Questo semplifica notevolmente la gestione delle dipendenze del progetto e l’integrazione di funzionalità aggiuntive.
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, world!\n');
});
server.listen(3000, '127.0.0.1', () => {
console.log('Server in ascolto su http://127.0.0.1:3000/');
});
Questo codice crea un server web di base che risponde con “Hello, world!” a tutte le richieste HTTP in arrivo sulla porta 3000.
Express.js è un framework web popolare per Node.js che semplifica la creazione di applicazioni web avanzate. Ecco un esempio di come creare una semplice API RESTful con Express:
const express = require('express');
const app = express();
app.get('/api/v1/posts', (req, res) => {
const posts = [{ id: 1, title: 'Post 1' }, { id: 2, title: 'Post 2' }];
res.json(posts);
});
app.listen(3000, () => {
console.log('Server in ascolto su http://localhost:3000');
});
In questo esempio, Express semplifica la gestione delle rotte e delle risposte JSON.
Socket.io è una libreria che semplifica la creazione di applicazioni in tempo reale utilizzando WebSocket. Ecco un esempio di chat in tempo reale con Socket.io:
const http = require('http');
const express = require('express');
const { Server } = require('socket.io');
const app = express();
const server = http.createServer(app);
const io = new Server(server);
app.get('/', (req, res) => {
res.sendFile(__dirname + '/index.html');
});
io.on('connection', (socket) => {
console.log('Un utente si è connesso');
socket.on('chat message', (msg) => {
io.emit('chat message', msg);
});
socket.on('disconnect', () => {
console.log('Un utente si è disconnesso');
});
});
server.listen(3000, () => {
console.log('Server in ascolto su http://localhost:3000');
});
Questo esempio mostra come creare una semplice applicazione di chat in tempo reale utilizzando Socket.io.
Node.js ha aperto nuove frontiere per lo sviluppo web lato server con JavaScript, consentendo agli sviluppatori di costruire applicazioni altamente performanti e scalabili. Con le sue caratteristiche avanzate e una vasta libreria di moduli, Node.js è diventato uno strumento fondamentale per molti sviluppatori web moderni. Se sei interessato allo sviluppo web lato server, Node.js è sicuramente un argomento che vale la pena approfondire.
Non faccio grandi cose ma piccole cose che sembrano funzionare bene.
Roberto Paolucci