La scelta di un framework per l’applicazione NodeJS può essere difficile. Ce ne sono così tanti, con i loro punti di forza e di debolezza. Alla fine della giornata, il framework che scegli dipenderà dal tuo ambiente di programmazione e da cosa vuoi che la tua app faccia. Alcuni framework sono leggeri, veloci e non si preoccupano di come costruisci la tua app. Altri hanno più funzionalità ma potrebbero costringerti a usare i loro motori e organizzare il tuo codice in un certo modo.
L’obiettivo di questo articolo è quello di confrontare alcuni dei framework di nodi più popolari in modo da poter decidere quale è giusto per il tuo progetto.
Che cos’è un framework?
In generale, un framework è un sistema di supporto per la tua applicazione. Node fornisce una serie di strumenti per interfacciarsi con le cose di cui la tua app ha bisogno, come la rete e il filesystem. Un framework estende queste capacità e astrae alcuni degli aspetti più complicati dello sviluppo. Ad esempio, un gestore nel codice potrebbe ricevere un oggetto di richiesta dalla rete. Un framework potrebbe intercettare questo oggetto di richiesta prima che raggiunga il gestore, aggiungendo alcuni metodi e funzionalità aggiuntivi per semplificare il lavoro.
Esistono diverse versioni del framework Node e ognuna offre un’esperienza di programmazione diversa.
MVC Frameworks
L’architettura MVC (Model View Controller) è un modello di progettazione utile che suddivide la logica dell’applicazione in tre parti: modelli per definire la forma dei dati, viste per organizzare l’interfaccia utente e controller per comunicare tra i due. I framework di nodi che supportano l’architettura MVC sono utili se non si desidera dedicare troppo tempo a preoccuparsi di come organizzare il codice.
Express
Potremmo anche togliere Express prima di tutto, poiché nessun elenco di framework di nodi sarebbe completo senza di esso. Express è ancora il campione in carica dei quadri popolari, come attestano le sue stelle Github 47.5 K, gli orologi 1.8 K e le forcelle 7.7 K. Questo da solo lo rende una scelta eccellente. È robusto, ben testato e c’è una grande comunità che mantiene e lavora con essa che può supportarti e rispondere alle domande.
Express si presenta come un ” framework veloce, non supponente e minimalista per Node.”L’attenzione è rivolta alle prestazioni e a fornire solo ciò di cui hai bisogno. Il framework fornisce poche funzionalità proprie, invece di consentire un esteso concatenamento middleware per elaborare le richieste.
Guida introduttiva
Crea un server.js o app.file js nella radice del progetto e aggiungere il seguente codice
const express = require('express')const app = express()app.get('/', function (req, res) { res.send('Hello World')})app.listen(3000)
Eseguire il server con
node ./server.js
e visitare localhost:3000 nel browser per vedere la risposta.
Vele
Vele sottolineare la stabilità e la facilità d’uso e fornisce più fuori dalla scatola di Espresso. Si appoggia nella direzione dello stack completo, fornendo supporto per l’autenticazione, il proprio ORM per l’interfacciamento del database, WebSockets e templating. Sails è più supponente di Express, il che significa che è necessario utilizzare l’ORM fornito (linea di galleggiamento) e il motore di template (EJS, sebbene un’estensione chiamata Consolidate fornisca supporto per altri motori di template compatibili con Express.) Sails vanta anche un impressionante generatore di API chiamato Blueprints, che consente di generare endpoint API con una codifica manuale minima. Dalla documentazione delle Vele:
…se si crea un Utente.file di modello js nel tuo progetto, quindi con i blueprints abilitati sarai in grado di visitare immediatamente /utente/creare?name = joe per creare un utente e visit / user per visualizzare una serie di utenti della tua app. Il tutto senza scrivere una sola riga di codice!
Sails è in circolazione da molto tempo ed è tra i framework più popolari secondo le sue stelle, viste e forchette Github. Molte grandi aziende si affidano a Sails, il che significa che è abbastanza robusto da supportare applicazioni di livello enterprise.
Guida introduttiva
Sails fornisce una potente interfaccia a riga di comando per essere installato e funzionante con una nuova app molto rapidamente
npm install -g sailssails new <project_name>
Ti verrà richiesto di scegliere un modello di app Web con autenticazione e accesso integrati o un’app vuota. Una volta che Sails termina la configurazione delle basi, cd nella cartella del progetto ed eseguire
sails lift
È ora possibile passare a localhost:1337 per vedere la home page generata.
Framework full-Stack
I framework full-stack forniscono struttura e funzionalità per l’intera applicazione, dal client al server al database. Un framework full-stack potrebbe essere dotato di molte funzionalità, tra cui motori di template, librerie WebSocket e ORM. A seconda delle dimensioni del team e dell’applicazione, queste funzionalità potrebbero essere molto utili o potrebbero essere più del necessario.
Meteor
Meteor è il secondo framework di nodi più visto, visto e biforcuto su Github. La comunità è vivace e la documentazione è ampia. La documentazione include best practice, guide di stile consigliate e molti tutorial e articoli tecnici. Meteor viene fornito in bundle con npm e il suo gestore di pacchetti chiamato Atmosphere, oltre al supporto integrato per un datastore Mongo e una facile integrazione con React, Angular o Blaze. È più supponente di Express o Vele.
Meteor utilizza “dati sul filo” al contrario del rendering lato server, quindi il server invia dati, non HTML, e il client lo esegue. Lo strumento di costruzione Meteor fornisce il supporto immediato per i dispositivi mobili tramite Cordova e supporta il ricaricamento a caldo.
Guida introduttiva
Lo strumento di compilazione di Meteor è ciò che crea, compila ed esegue la tua app. Scaricalo tramite curl.
curl https://install.meteor.com/meteor create <project_name>
Questo creerà la struttura dei file per tutto ciò di cui hai bisogno in un’app Javascript di base, organizzata nelle directory /client e /server. cd nella root del progetto ed esegui
meteor run
L’app dovrebbe ora essere in esecuzione su localhost:3000
REST API Frameworks
Se hai coperto il lato client della tua applicazione, potresti aver solo bisogno di un framework per la parte server del tuo stack. In questo caso, potresti utilizzare un semplice framework API REST solo per gestire le richieste CRUD sul tuo server. Potresti praticamente farlo con Express, ma ci sono anche framework specificamente orientati alla gestione di questo caso particolare.
Loopback
Loopback è il secondo framework API REST più popolare, secondo Github. Sviluppato da IBM, è un ” framework di nodi open source altamente estensibile basato su Express che consente di creare rapidamente API e microservizi.”Viene fornito con uno strumento da riga di comando per la generazione di progetti e la creazione di controller e modelli con facilità e fornisce il supporto aggiuntivo per una facile autenticazione e autorizzazione. Non fornisce alcun supporto per viste o modelli o un ORM dedicato, in quanto è destinato ad essere utilizzato solo come API.
Loopback consente di creare un’API dinamica in pochi minuti con una codifica minima. Il ciclo di sviluppo è molto veloce e la struttura dei file è pulita e utile. L’installazione include opzioni per configurare eslint, prettier, mocha e docker direttamente dalla scatola.
Guida introduttiva
npm install -g @loopback/clilb4 <project_name>
Ti verrà richiesto di rispondere a diverse domande su come vuoi configurare la tua app e la struttura del file verrà impalcata. cd nella radice del progetto ed eseguire
npm start
Per creare una nuova rotta, eseguire
lb4 controller
e rispondere alle istruzioni. Una volta creato il file del controller, è possibile importare la funzione Loopback get e utilizzarla per configurare il controller
import {get} from '@loopback/rest';export class HelloController { @get('/hello') hello(): string { return 'Hello world!'; }}
Riepilogo: Best Node.js Frameworks
Framework | Prestazioni | Comunità | Facilità d’uso | Ideale per |
---|---|---|---|---|
Espresso | Veloce. Aggiunge poco quindi nulla per ottenere il modo in cui la velocità grezza del nodo. | Massiccio. Un sacco di domande poste e risposte. | Difficile come vuoi farlo. | Progetti grandi e piccoli. Anche un ottimo modo per imparare a lavorare con il nodo. |
Vele | Medie. Il focus è sul miglioramento dell’efficienza dello sviluppatore rispetto alle prestazioni. | Grande. Un progetto consolidato che esiste da molto tempo. | Facile. I blueprints rendono molto facile ottenere un’API attiva e funzionante con una codifica minima. | Progetti di medie dimensioni che devono decollare rapidamente. |
Meteora | Più lenta. L’obiettivo è quello di alzarsi/prototipare un progetto molto rapidamente. | Più piccolo ma vivace e in crescita. | Facile. I blueprints rendono molto facile ottenere un’API attiva e funzionante con una codifica minima. | In piedi piccoli progetti rapidamente. Sporcarsi le mani con un nuovo strumento. |
Loopback | Medio. | Piccolo, ma chi lo ama lo ama davvero. | Facile ma non fornisce tanto in anticipo. | Creazione di un’API su scala aziendale per un front-end separato. |
Conclusioni
È difficile scegliere un framework di nodo “migliore” definitivo, poiché il framework scelto cambierà in base alle proprie esigenze. Se vuoi la libertà di scegliere le tue librerie e integrazioni di terze parti, Express o Loopback potrebbero essere la soluzione migliore. Ma se la tua squadra vuole affrontare una nuova app nel giro di pochi giorni, Meteor o Sails potrebbero soddisfare meglio le tue esigenze.
Ci sono molti altri framework oltre a quelli discussi in questo articolo, e il modo migliore per sapere cosa funzionerà per la tua app o team è leggere i documenti e provarne alcuni.
- Come utilizzare un’API
- con JavaScript
- Come creare un’API
- con Node.js ed espresso.js
- Come costruire un App Meteo con Nodo.js
- Come Impostare un GraphQL Server con Nodo e Express