Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Node.js Appunti Linguaggio, Schemi e mappe concettuali di Informatica

Appunti relativi al linguaggio di programmazione node

Tipologia: Schemi e mappe concettuali

2025/2026

Caricato il 01/04/2026

mario-rossi-qj7-1
mario-rossi-qj7-1 🇮🇹

2 documenti

1 / 5

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
NODE JS
INTRODUZIONE
Node.js è un runtime JavaScript, fermiamoci a questa parola e vediamo cosa significa:
RUNTIME: Non è altro che il periodo in cui un programma per computer viene
effettivamente eseguito, in questo caso viene utilizzato per dire che Node.js permette
di eseguire JavaScript anche esternamente dal browser (cosa che con JavaScript, non
potremmo fare normalmente) e per questa capacità viene utilizzato moltissimo come
BackEnd, Server, Api REST ecc. ecc.
È costruito sul motore JavaScript V8 di Chrome e non lo dobbiamo considerare né un
linguaggio di programmazione, né un framework.
V8: È il nome del motore sviluppato da Google per eseguire e compilare JavaScript, è
scritto in C++.
Viene considerato così potente perché appunto, permette di sviluppare un’intera
applicazione web con un solo linguaggio (front e back -end)
COME FUNZIONA?
Node.js utilizza l’Event Loop a thread singolo (non è arabo!).
Capiamo innanzitutto, cosa è l’Event Loop.
EVENT LOOP: È un meccanismo (tipico di JS, Node.js, Browser) che:
Prende eventi/task (click, timer, richieste, callback …)
Li mette in una coda
Ne esegue uno alla volta
THREAD SINGOLO:
C’è un solo thread principale
Viene eseguita una sola operazione alla volta
Se ci dovessero essere più client ad inviare una richiesta, il server elabora le
richieste ed assegna ad ognuna di esse un thread. Così facendo, migliora
privacy e sicurezza.
E poi è asincrono -> Ovvero permette di lavorare alla CPU in maniera
differente a seconda del CORE in uso o divide il lavoro tra BIU ed EU nella
pratica, ma a livello teorico, le operazioni vengono eseguite da parti potremmo
dire divise e dunque se una operazione rallenta di tanto, non ne risentiranno le
altre e il “linguaggio” è più veloce
Inoltre, Node.js ha una vasta community e vanta del più grande repository di
pacchetti/librerie al mondo (NPM)
Utilizza meno thread e dunque meno risorse/memoria, anche se ciò comporta un
abbassamento delle performance.
Node.js viene molte delle volte utilizzato insieme ad:
DATABASE (SQL o NO-SQL)
BACK END (Node.js e Express.js)
FRONT END (Angular, React o Vue)
CODICE
pf3
pf4
pf5

Anteprima parziale del testo

Scarica Node.js Appunti Linguaggio e più Schemi e mappe concettuali in PDF di Informatica solo su Docsity!

NODE JS

INTRODUZIONE

Node.js è un runtime JavaScript, fermiamoci a questa parola e vediamo cosa significa: RUNTIME : Non è altro che il periodo in cui un programma per computer viene effettivamente eseguito, in questo caso viene utilizzato per dire che Node.js permette di eseguire JavaScript anche esternamente dal browser (cosa che con JavaScript, non potremmo fare normalmente) e per questa capacità viene utilizzato moltissimo come BackEnd, Server, Api REST ecc. ecc. È costruito sul motore JavaScript V8 di Chrome e non lo dobbiamo considerare né un linguaggio di programmazione, né un framework. V8 : È il nome del motore sviluppato da Google per eseguire e compilare JavaScript, è scritto in C++. Viene considerato così potente perché appunto, permette di sviluppare un’intera applicazione web con un solo linguaggio (front e back -end) COME FUNZIONA? Node.js utilizza l’Event Loop a thread singolo (non è arabo!). Capiamo innanzitutto, cosa è l’ Event Loop. EVENT LOOP : È un meccanismo (tipico di JS, Node.js, Browser) che:  Prende eventi/task (click, timer, richieste, callback …)  Li mette in una coda  Ne esegue uno alla volta THREAD SINGOLO :  C’è un solo thread principale  Viene eseguita una sola operazione alla volta  Se ci dovessero essere più client ad inviare una richiesta, il server elabora le richieste ed assegna ad ognuna di esse un thread. Così facendo, migliora privacy e sicurezza.  E poi è asincrono -> Ovvero permette di lavorare alla CPU in maniera differente a seconda del CORE in uso o divide il lavoro tra BIU ed EU nella pratica, ma a livello teorico, le operazioni vengono eseguite da parti potremmo dire divise e dunque se una operazione rallenta di tanto, non ne risentiranno le altre e il “linguaggio” è più veloce Inoltre, Node.js ha una vasta community e vanta del più grande repository di pacchetti/librerie al mondo (NPM) Utilizza meno thread e dunque meno risorse/memoria, anche se ciò comporta un abbassamento delle performance. Node.js viene molte delle volte utilizzato insieme ad:  DATABASE (SQL o NO-SQL)  BACK END (Node.js e Express.js)  FRONT END (Angular, React o Vue) CODICE

L’estensione dei file sarà: .js Come prima cosa nel codice bisogna importare il pacchetto http, per importare

mettiamo const per definire come costante il nome con cui chiamare il pacchetto che

nel nostro caso, va bene come http, poi si mette = require(‘’), tra virgolette va inserito

il pacchetto. EXPRESS Express è una libreria di node che permette di creare web app e api in maniera iperveloce. Dopo aver importato la libreria è necessario inizializzare il server con:

const app = express()

È possibile ricevere richieste di tutte le tipologie conoscite (GET, POST ecc. ecc.), ci concentreremo su GET e POST. GET La richiesta di tipo get è una richiesta che ritorna sempre un qualcosa. Può però comprendere anche qualche dato nella richiesta. Ossia Query Parameters o Route Parameters. QUERY Es. localhost:3000/?id=5&cb= Si accede con

req.query[nome_query]

ROUTE

Es. Localhost:3000/id Attenzione a non avere dei percorsi simili alla route parameter. Si accede con

req.params.id

POST

Si usa per passare dei dati grandi o sensibili, poiché essi vengono trasmessi al di fuori dell’url. BODY Molto utilizzato per passare svariati dati in formato .json Si accede con:

req.body

Utilizzare più di un file con Node.Js + Express è un lavoro di routine, ciò semplifica il codice e la vita in molti casi. Per fare ciò è necessario:

 FILE A : app.use(“/account”, require(“./account”))

In questo modo, qualsiasi rotta contenga “/account” viene reindirizzata in quella pagina di codice

 FILE B : const router = express.Router()

Ora posso usare il router proprio come fosse app nella pagina principale. Ultimissima cosa, ma FONDAMENTALE , al termine della pagina B , è necessario

riportare il router, con: module.exports = router;

DATABASE

Il collegamento al database per Node.js è un’altra competenza basilare che bisogna avere. Nel nostro caso ci andremo a collegare ad un database di tipo MySQL. Per fare ciò è necessaria la libreria mysql2, da installare con NPM. Per collegarci al database abbiamo due modalità:  CreateConnection: Ad ogni richiesta di accesso al DB, viene create una Nuova Connessione (Ottima per utilizzi sporadici del DB, ma molto lenta e poco funzionale perché occupa molta memoria, per giunta è ormai praticamente OBSOLETA )  CreatePool: Crea una connessione iniziale e la mantiene per tutta la durata del PROCESSO (Programma in Esecuzione), inoltre viene implementata una lista con la quale possiamo decidere quante richieste eseguire contemporaneamente ecc. ecc. Es.

mysql.createPool(

host: //Host Database

password:

port:

database:

waitForConnections: //Aspettare per le connessioni

connectionLimit: //Numero limite di connessioni contemporanee

queueLimit: //Limite di connessioni in coda

SESSION

Le session sono un argomento estremamente importante per la creazione di web app e siti Internet principalmente. Per capire cosa sono le session e come si usano, dobbiamo capire perché sono state inventate. Dobbiamo sapere che c’è una netta differenza tra una web app e una app mobile, questo perché l’app mobile “gira” su un dispositivo (personale) ovvero quello dell’utilizzatore finale e dati sensibili come quelli di login vengono molte delle volte salvate in locale (dunque distanti da potenziali attacchi) in una memoria. L’app web è molto più responsive, infatti non ha bisogno di essere installata, ma ciò non vuol dire che è “campata in aria”, infatti la app web gira su dei server a cui si collegano delle volte anche milioni di persone contemporaneamente e non sarebbe possibile salvare in memoria dei dati di login e sapere precisamente a quale utente corrispondono. Dunque, per evitare questi problemi ci sono le session. Possono essere avviate quando si desidera, ma si consiglia di attivarle dopo l’inserimento di informazioni (come dopo il login). COME FUNZIONANO? In sostanza le session non sono altro che un cookie, che viene portato con sé in ogni pagina della nostra web app. La web app fare poi richiesta per ottenerle ad ogni pagina in cui vogliamo saperle e il gioco è fatto. COME SI USANO?

const session = require(“express-session”);

app.use(session({

secret: “super-secret”

D’ora in poi le possiamo chiamare proprio come fossero delle request, quindi con

req.session.