



Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Appunti relativi al linguaggio di programmazione node
Tipologia: Schemi e mappe concettuali
1 / 5
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!




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
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:
È 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
Es. Localhost:3000/id Attenzione a non avere dei percorsi simili alla route parameter. Si accede con
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:
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:
In questo modo, qualsiasi rotta contenga “/account” viene reindirizzata in quella pagina di codice
Ora posso usare il router proprio come fosse app nella pagina principale. Ultimissima cosa, ma FONDAMENTALE , al termine della pagina B , è necessario
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.
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?
D’ora in poi le possiamo chiamare proprio come fossero delle request, quindi con