Come costruire un backend per ExpressJS?
In questo tutorial, imparerai come costruire un backend completo per un ExpressJS applicazione utilizzando Back4app.
Esploreremo l'integrazione delle funzionalità essenziali di Back4app—come la gestione del database, le Funzioni Cloud Code, le API REST e GraphQL, l'autenticazione degli utenti e le query in tempo reale (Live Queries)—per creare un backend sicuro, scalabile e robusto che comunica senza problemi con le tue rotte e middleware di ExpressJS.
Vedrai anche come la rapida configurazione e l'ambiente intuitivo di Back4app possano ridurre drasticamente il tempo e lo sforzo rispetto alla configurazione manuale di server e database.
Durante il percorso, acquisirai esperienza pratica con funzionalità chiave, inclusi avanzati strumenti di sicurezza, programmazione di attività con Cloud Jobs e configurazione di webhook per integrazioni esterne.
Alla fine di questo tutorial, sarai ben preparato per migliorare questa configurazione di base in un'applicazione pronta per la produzione, o per incorporare facilmente logica personalizzata e API di terze parti secondo necessità.
Per completare questo tutorial, avrai bisogno di:
- Un account Back4app e un nuovo progetto Back4app Iniziare con Back4app. Se non hai un account, puoi crearne uno gratuitamente. Segui la guida sopra per preparare il tuo progetto.
- Ambiente di base Node.js / Express Puoi configurarlo utilizzando Express Generator o uno strumento simile. Assicurati di avere Node.js installato sul tuo computer.
- Node.js (versione 14 o superiore) installato Avrai bisogno di Node.js per installare pacchetti npm e eseguire server di sviluppo locali. Installare Node.js
- Familiarità con JavaScript e concetti di base di ExpressJS Documentazione ufficiale di ExpressJS. Se sei nuovo a Express, rivedi la documentazione ufficiale o un tutorial per principianti prima di iniziare.
Assicurati di avere tutti questi requisiti in ordine prima di iniziare. Avere il tuo progetto Back4app configurato e il tuo ambiente locale ExpressJS pronto ti aiuterà a seguire più facilmente.
Il primo passo per costruire il tuo backend ExpressJS su Back4app è creare un nuovo progetto. Se non ne hai già creato uno, segui questi passaggi:
- Accedi al tuo account Back4app.
- Clicca sul pulsante “Nuova App” nella tua dashboard di Back4app.
- Dai un nome alla tua app (ad esempio, “ExpressJS-Backend-Tutorial”).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
Una volta creato il progetto, lo vedrai elencato nella tua dashboard di Back4app. Questo progetto sarà la base per tutte le configurazioni del backend discusse in questo tutorial.
Back4app si basa sulla Parse Platform per gestire i tuoi dati, fornire funzionalità in tempo reale, gestire l'autenticazione degli utenti e altro ancora. Collegare la tua applicazione ExpressJS a Back4app implica installare il parse pacchetto npm e inizializzarlo con le credenziali dalla tua dashboard di Back4app.
Recupera le tue chiavi Parse: Nella tua dashboard di Back4app, vai alla sezione “Impostazioni App” o “Sicurezza e Chiavi” della tua app per trovare il tuo ID Applicazione e Chiave JavaScript. Troverai anche l'URL del Server Parse (spesso nel formato https://parseapi.back4app.com).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/F9teHXd_M8ERn1OPGirbi_image.png?format=webp)
Installa il Parse SDK nel tuo progetto ExpressJS:
Se stai usando Yarn, puoi installarlo con:
Inizializza Parse nella tua applicazione ExpressJS:
Puoi creare un file (ad esempio, parseConfig.js) nella directory del tuo progetto:
Questo file garantisce che ogni volta che importi Parse altrove nella tua app Express (ad esempio, nelle tue rotte o controller), sia preconfigurato per connettersi alla tua specifica istanza Back4app.
Completando questo passaggio, hai stabilito una connessione sicura tra il tuo server ExpressJS e il backend di Back4app. Tutte le richieste e le transazioni di dati vengono instradate in modo sicuro attraverso questo SDK, riducendo la complessità delle chiamate REST o GraphQL manuali (anche se puoi comunque usarle quando necessario).
Con il tuo progetto Back4app configurato e l'SDK Parse integrato nella tua app Express, puoi ora iniziare a salvare e recuperare dati. Il modo più semplice per creare un record è utilizzare la classe Parse.Object . In uno dei tuoi gestori di rotta, ad esempio:
In alternativa, puoi utilizzare gli endpoint API REST di Back4app:
Back4app fornisce anche un'interfaccia GraphQL:
Queste diverse opzioni ti consentono di integrare le operazioni sui dati nel modo che meglio si adatta al tuo processo di sviluppo, sia attraverso il Parse SDK, REST o GraphQL.
Per impostazione predefinita, Parse consente la creazione di schemi al volo, ma puoi anche definire le tue classi e i tipi di dati nel dashboard di Back4app per avere maggiore controllo.
- Naviga nella sezione “Database” nel tuo dashboard di Back4app.
- Crea una nuova classe (ad esempio, “Todo”) e aggiungi colonne pertinenti, come titolo (String) e isCompleted (Boolean).
![Crea nuova classe Crea nuova classe](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
Back4app supporta anche vari tipi di dati: String, Number, Boolean, Object, Date, File, Pointer, Array, Relation, GeoPoint, e Polygon. Puoi scegliere il tipo appropriato per ciascun campo. Se preferisci, puoi anche lasciare che Parse crei automaticamente queste colonne quando salvi per la prima volta un oggetto dalla tua app Express.
![Crea colonna Crea colonna](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/DEh9vyxdBTZcslXxkVQMA_image.png?format=webp)
Back4app offre un agente AI che può aiutarti a progettare il tuo modello di dati:
- Apri l'AI Agent dal tuo App Dashboard o dal menu.
- Descrivi il tuo modello di dati in linguaggio semplice (ad esempio, “Per favore, crea una nuova ToDo App su back4app con uno schema di classe completo.”).
- Lascia che l'AI Agent crei lo Schema per te.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
Utilizzare l'AI Agent può farti risparmiare tempo nella configurazione della tua architettura dati e garantire coerenza nella tua applicazione.
Se hai dati relazionali—ad esempio, un oggetto Categoria che punta a più elementi Todo—puoi usare Puntatori o Relazioni in Parse. Ad esempio, aggiungere un puntatore a una Categoria:
Quando interroghi, puoi anche includere i dati del puntatore:
Questa include('category') chiamata recupera i dettagli della categoria insieme a ciascun Todo, rendendo i tuoi dati relazionali facilmente accessibili.
Per aggiornamenti in tempo reale, Back4app fornisce Query Live. Nella tua app ExpressJS, puoi iscriverti ai cambiamenti in una classe specifica. Anche se tipicamente associato a iscrizioni front-end (come in React o Angular), puoi comunque gestire connessioni in tempo reale in un ambiente Node o passare aggiornamenti ai client connessi tramite websockets.
- Abilita le Query Live nel tuo dashboard di Back4app sotto le impostazioni del tuo Server Settings. Assicurati che “Live Queries” sia attivato.
- Inizializza una Sottoscrizione a Live Query nel tuo codice:
Iscrivendoti, ricevi notifiche in tempo reale ogni volta che un nuovo Todo viene creato, aggiornato o eliminato. Questa funzionalità è particolarmente preziosa per app collaborative o dinamiche in cui più utenti devono vedere i dati più recenti senza ulteriori polling.
Back4app prende sul serio la sicurezza fornendo Access Control Lists (ACLs) e Class-Level Permissions (CLPs). Queste funzionalità ti permettono di limitare chi può leggere o scrivere dati su base per oggetto o per classe, garantendo che solo gli utenti autorizzati possano modificare i tuoi dati.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/PdAyrw1nqA1QQJFuCc-4t_image.png?format=webp)
Un ACL è applicato a singoli oggetti per determinare quali utenti, ruoli o il pubblico possono eseguire operazioni di lettura/scrittura. Ad esempio:
Quando salvi l'oggetto, ha un ACL che impedisce a chiunque tranne l'utente specificato di leggerlo o modificarlo.
![Modifica ACL Modifica ACL](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/3YNfxEcv7CKdLC6ca8my6_image.png?format=webp)
I CLP governano i permessi predefiniti di un'intera classe, come se la classe sia leggibile o scrivibile pubblicamente, o se solo determinati ruoli possano accedervi.
- Vai al tuo Dashboard di Back4app, seleziona la tua app e apri la Database sezione.
- Seleziona una classe (ad esempio, “Todo”).
- Apri la scheda dei Permessi a Livello di Classe.
- Configura i tuoi predefiniti, come “Richiede Autenticazione” per la lettura o la scrittura, o “Nessun Accesso” per il pubblico.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/MF1Uf7HSJF03Xg6djap9m_image.png?format=webp)
Questi permessi impostano la base, mentre gli ACL affinano i permessi per oggetti individuali. Un modello di sicurezza robusto combina tipicamente sia i CLP (restrizioni ampie) che gli ACL (restrizioni dettagliate per oggetto). Per ulteriori informazioni, vai a Linee Guida sulla Sicurezza dell'App.
Il Cloud Code è una funzionalità dell'ambiente Parse Server che consente di eseguire codice JavaScript personalizzato sul lato server, senza la necessità di gestire i propri server o infrastruttura. Scrivendo Cloud Code, puoi estendere il tuo backend di Back4app con logica aziendale aggiuntiva, validazioni, trigger e integrazioni che vengono eseguite in modo sicuro ed efficiente nell'ambiente Parse Server.
Quando scrivi Cloud Code, di solito posizioni le tue funzioni JavaScript, trigger e eventuali moduli NPM richiesti in un main.js (o app.js) file. Questo file viene quindi distribuito al tuo progetto Back4app, che viene eseguito all'interno dell'ambiente Parse Server. Poiché queste funzioni e trigger vengono eseguiti sul server, puoi fidarti di loro per gestire logiche riservate, elaborare dati sensibili o effettuare chiamate API solo backend, processi che potresti non voler esporre direttamente al client.
Tutto il Cloud Code per la tua app Back4app viene eseguito all'interno del Parse Server gestito da Back4app, quindi non devi preoccuparti della manutenzione del server, della scalabilità o della fornitura. Ogni volta che aggiorni e distribuisci il tuo file main.js, il Parse Server in esecuzione viene aggiornato con il tuo codice più recente.
Struttura del file main.js Un tipico main.js potrebbe contenere:
- Dichiarazioni di Require per eventuali moduli necessari (pacchetti NPM, moduli Node integrati o altri file di codice cloud).
- Definizioni di funzioni Cloud utilizzando Parse.Cloud.define().
- Trigger come Parse.Cloud.beforeSave(), Parse.Cloud.afterSave(), ecc.
- Moduli NPM che hai installato (se necessario). Ad esempio, potresti installare un pacchetto come axios per effettuare richieste HTTP. Puoi quindi richiederlo (o importarlo) all'inizio del tuo file.
Con la possibilità di installare e utilizzare moduli NPM, il Cloud Code diventa incredibilmente flessibile, consentendoti di integrarti con API esterne, eseguire trasformazioni dei dati o eseguire logiche complesse lato server.
- Logica Aziendale: Ad esempio, puoi calcolare il punteggio di un utente in un gioco aggregando più proprietà degli oggetti e poi memorizzare automaticamente quei dati.
- Validazioni dei Dati: Assicurati che determinati campi siano presenti o che un utente abbia le autorizzazioni corrette prima di salvare o eliminare un record.
- Attivatori: Esegui azioni quando i dati cambiano (ad es., invia una notifica quando un utente aggiorna il proprio profilo).
- Integrazioni: Connettiti con API o servizi di terze parti. Ad esempio, potresti integrare gateway di pagamento, notifiche Slack o piattaforme di email marketing direttamente dal Cloud Code.
- Applicazione della Sicurezza: Aggiungi un ulteriore livello di sicurezza convalidando e sanificando i parametri di input nelle tue funzioni di Cloud Code.
Di seguito è riportata una semplice funzione di Cloud Code che calcola la lunghezza di una stringa di testo inviata dal client:
Distribuzione tramite il Back4app CLI:
1 - Installa il CLI:
- Per Linux/MacOS:
3 - Distribuisci il tuo codice cloud:
Distribuzione tramite il Dashboard:
- Nel dashboard della tua app, vai su Cloud Code > Funzioni.
- Copia/incolla la funzione nell' editor di main.js.
- Clicca su Distribuisci.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/pGxBQFBhk4prMc8Ub-uho_image.png?format=webp)
Dalla tua applicazione ExpressJS, puoi chiamare la funzione Cloud Code utilizzando il Parse SDK:
Puoi anche chiamarlo tramite REST:
O tramite GraphQL:
Questa flessibilità ti consente di integrare la tua logica personalizzata nel tuo backend ExpressJS o in qualsiasi altro client che supporti REST o GraphQL.
Back4app sfrutta la Parse User classe come base per l'autenticazione. Per impostazione predefinita, Parse gestisce l'hashing delle password, i token di sessione e lo storage sicuro. Questo significa che non devi configurare manualmente flussi di sicurezza complessi.
In un'applicazione Express, potresti creare rotte per la registrazione e il login degli utenti:
Via REST, un login potrebbe apparire così:
Dopo un login riuscito, Parse crea un token di sessione che viene memorizzato nell'oggetto utente. Nella tua app Express, potresti memorizzare questo token in una sessione o restituirlo al client:
Parse gestisce automaticamente le sessioni basate su token in background, ma puoi anche gestirle o revocarle manualmente. Questo è utile quando hai bisogno di disconnetterti:
Back4app e Parse possono integrarsi con i popolari fornitori OAuth, come Google o Facebook, installando pacchetti aggiuntivi o utilizzando adattatori esistenti. Ad esempio, puoi configurare un login Facebook impostando il tuo Facebook App ID e utilizzando Parse.FacebookUtils.logIn(). Le istruzioni dettagliate variano, quindi fai riferimento alla Documentazione del Login Sociale.
Per abilitare la verifica email e la reimpostazione della password:
- Naviga nelle Impostazioni Email nel tuo dashboard di Back4app.
- Abilita la verifica email per garantire che i nuovi utenti verifichino la proprietà dei loro indirizzi email.
- Configura l'indirizzo del mittente, i modelli email e il tuo dominio personalizzato se desiderato.
Queste funzionalità migliorano la sicurezza dell'account e l'esperienza dell'utente validando la proprietà delle email e fornendo un metodo sicuro di recupero della password.
Parse include la classe Parse.File per gestire i caricamenti di file, che Back4app memorizza in modo sicuro. In una route Express, puoi fare:
Per allegare il file a un oggetto nel database, puoi fare:
E recuperare l'URL del file è semplice:
Puoi quindi servire o rispondere con imageUrl nelle tue rotte Express.
Parse Server fornisce configurazioni flessibili per gestire la sicurezza del caricamento dei file. Il seguente esempio mostra come puoi impostare i permessi per controllare chi può caricare file sul server:
{ "fileUpload": { "enableForPublic": true, "enableForAnonymousUser": true, "enableForAuthenticatedUser": true } }
- enableForPublic: Se impostato su true, consente a chiunque, indipendentemente dallo stato di autenticazione, di caricare file.
- enableForAnonymousUser: Controlla se gli utenti anonimi (non registrati) possono caricare file.
- enableForAuthenticatedUser: Specifica se solo gli utenti autenticati possono caricare file.
Lavori Cloud in Back4app ti permettono di pianificare ed eseguire attività di routine sul tuo backend, come la pulizia dei dati obsoleti o l'invio di un'email di riepilogo giornaliero. Un tipico Lavoro Cloud potrebbe apparire così:
- Distribuisci il tuo Codice Cloud con il nuovo lavoro (tramite CLI o la dashboard).
- Vai alla Dashboard di Back4app > Impostazioni App > Impostazioni Server > Lavori in Background.
- Pianifica il lavoro per essere eseguito quotidianamente o a qualsiasi intervallo che soddisfi le tue esigenze.
![Pianificazione di un Lavoro Cloud Pianificazione di un Lavoro Cloud](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5wG60YnWIST74erryTb-u_image.png?format=webp)
I Lavori Cloud ti consentono di automatizzare la manutenzione in background o altri processi periodici, senza richiedere intervento manuale.
Webhooks consentono alla tua app Back4app di inviare richieste HTTP a un servizio esterno ogni volta che si verificano determinati eventi. Questo è potente per l'integrazione con sistemi di terze parti come gateway di pagamento (ad es., Stripe), strumenti di email marketing o piattaforme di analisi.
- Naviga nella configurazione dei Webhook nel tuo dashboard di Back4app > Altro > WebHooks e poi clicca su Aggiungi Webhook.
- Configura i trigger per specificare quali eventi nelle tue classi Back4app o nelle funzioni Cloud Code attiveranno il webhook.
![Aggiunta di un Webhook Aggiunta di un Webhook](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
Ad esempio, se vuoi notificare un canale Slack ogni volta che viene creato un nuovo Todo:
- Crea un'app Slack che accetta webhook in entrata.
- Copia l'URL del webhook di Slack.
- Nel tuo dashboard di Back4app, imposta l'endpoint su quell'URL di Slack per l'evento “Nuovo record nella classe Todo.”
- Puoi anche aggiungere intestazioni HTTP personalizzate o payload se necessario.
Puoi anche definire Webhook nel Cloud Code effettuando richieste HTTP personalizzate in trigger come beforeSave, afterSave:
![BeforeSave WebHook BeforeSave WebHook](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/fXvy4eRzabyWmN80OMyqW_image.png?format=webp)
L' App di Amministrazione di Back4app è un'interfaccia di gestione basata sul web progettata per utenti non tecnici per eseguire operazioni CRUD e gestire compiti di routine sui dati senza scrivere codice. Fornisce un' interfaccia centrata sul modello, facile da usare che semplifica l'amministrazione del database, la gestione dei dati personalizzati e le operazioni a livello aziendale.
Abilitalo andando su App Dashboard > Altro > App di Amministrazione e cliccando sul pulsante “Abilita App di Amministrazione”.
![Abilita App di Amministrazione Abilita App di Amministrazione](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
Crea un Primo Utente Amministratore (nome utente/password), che genera automaticamente un nuovo ruolo (B4aAdminUser) e classi (B4aSetting, B4aMenuItem e B4aCustomField) nello schema della tua app.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/u-pU1yBJJxa9KEM2psjXS_image.png?format=webp)
Scegli un Sottodominio per accedere all'interfaccia di amministrazione e completa la configurazione.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/_2b71RLDTlQW468017saY_image.png?format=webp)
Accedi utilizzando le credenziali di amministratore che hai creato per accedere al tuo nuovo dashboard dell'App Admin.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/jOFU8C0qiFm6wiVZXS9l0_image.png?format=webp)
Una volta abilitata, l'App Admin di Back4app rende facile visualizzare, modificare o rimuovere record dal tuo database—senza richiedere l'uso diretto del Parse Dashboard o del codice backend. Con controlli di accesso configurabili, puoi condividere in modo sicuro questa interfaccia con membri del team o clienti che necessitano di un modo chiaro e intuitivo per gestire i dati.
Seguendo questo tutorial completo, hai:
- Creato un backend sicuro per un'app ExpressJS su Back4app.
- Configurato un database con schemi di classe, tipi di dati e relazioni.
- Integrato query in tempo reale (Live Queries) per aggiornamenti immediati dei dati.
- Applicate misure di sicurezza utilizzando ACL e CLP per proteggere e gestire l'accesso ai dati.
- Implementato Cloud Code funzioni per eseguire logica aziendale personalizzata sul lato server.
- Impostata l'autenticazione degli utenti con supporto per la verifica dell'email e il ripristino della password.
- Gestiti caricamenti di file e recupero, con controlli di sicurezza dei file opzionali.
- Pianificati Cloud Jobs per attività di background automatizzate.
- Utilizzati Webhook per integrarsi con servizi esterni.
- Esplorato il Pannello di Amministrazione di Back4app per la gestione dei dati.
Con un solido server ExpressJS e un robusto backend Back4app, sei ora ben attrezzato per sviluppare applicazioni ricche di funzionalità, scalabili e sicure. Continua a esplorare funzionalità più avanzate, integra la tua logica aziendale e sfrutta la potenza di Back4app per risparmiare innumerevoli ore nella gestione di server e database. Buon coding!
- Costruisci un'app ExpressJS pronta per la produzione estendendo questo backend per gestire modelli di dati più complessi, strategie di caching e ottimizzazioni delle prestazioni.
- Integra funzionalità avanzate come flussi di autenticazione specializzati, controllo degli accessi basato sui ruoli o API esterne (come i gateway di pagamento).
- Controlla la documentazione ufficiale di Back4app per approfondimenti su sicurezza avanzata, ottimizzazione delle prestazioni e analisi dei log.
- Esplora altri tutorial su applicazioni di chat in tempo reale, dashboard IoT o servizi basati sulla posizione. Puoi combinare le tecniche apprese qui con API di terze parti per creare applicazioni complesse e reali.
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)