Initial commit: 24/03/24
Technologies: Express, MongoDB, Mongoose, NodeJS, Javascript
Info: Questo boilerplate è composto da moduli indipendenti, ognuno dedicato a un argomento diverso che ho studiato. Serve come base per applicazioni Node.js.
- Direct Logging → Middleware per registrare immediatamente i dettagli delle richieste in arrivo..
- Error Check → Middleware per intercettare errori restituendo risposte HTTP appropriate.
- Connect MongoDB → Factory che genera un'istanza di MongoClient dai parametri di configurazione.
- MongoDB Mongoose → Factory che genera un'istanza di Mongoose dai parametri di configurazione.
- Async Handler → Utility per incapsulare i gestori di route asincroni, semplificando la gestione degli errori nelle operazioni asincrone.
- Auth Session → Factory che restituisce middleware per la gestione delle sessioni tramite cookie e memorizzazione in MongoDB.
- Auth JWT → Factory che restituisce middleware per la gestione dei token JWT (Sign, Verify, Delete).
- Clean Shutdown → Imposta gestori di eventi per una chiusura pulita dell'applicazione
- Demo Auth Session → Fornisce route di base per la gestione delle sessioni e dimostrazioni di autenticazione utente.
- Demo Auth JWT → Fornisce route di base per la gestione dei jwt e dimostrazioni di autenticazione utente.
- Resource API → Factory che fornisce route API RESTful modulari /api/ per operazioni CRUD su collezioni MongoDB, supportando funzionalità di ricerca, aggiunta, aggiornamento e eliminazione. Questa struttura consente una facile adattabilità per diverse risorse, garantendo una gestione flessibile e scalabile.
node_template/
├─ public/
- Directory per file statici accessibili al client. Contiene asset come immagini, CSS e JS.
│ └─ css/
- Contiene file CSS personalizzati per lo stile delle pagine web.
├─ src/
│ └─ config/
- Gestione della configurazione e impostazione dell'ambiente.
│ └─connections/
- Configurazione del client MongoDB e utility di connessione al database.
│ └─middlewares/
- Middleware per la gestione degli errori, la registrazione delle richieste e la gestione delle sessioni.
│ └─routes/
- Definizioni delle route di Express per autenticazione demo e gestione degli utenti
│ └─utils/
- Utility come il wrapper async handler, query builders e gestione dei segnali.
├─ .env
- Template per le variabili d'ambiente (copiare in .env.dev per lo sviluppo).
├─ app.js
- Punto di ingresso per l'applicazione.
├─ views/
- Template per il rendering delle viste sul server utilizzando un motore di template (es. EJS, Pug).
├─ package.json
- Metadata del progetto e dipendenze.
$ git clone https://github.com/cyberfolk/node_template.git
$ cd node_template
$ npm install
$ npm run dev
# Esegue il server con nodemon in ambiente di sviluppo
# Esegue "cross-env NODE_ENV=dev nodemon bin/www",
$ npm dev_debug
# Esegue il server con nodemon in modalità debug e in ambiente di sviluppo
# Esegue "cross-env DEBUG=node_template:* NODE_ENV=dev nodemon bin/www"
Questo progetto è software open-source con licenza ISC.