cyberfolk / node_template

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Node Template

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.

Custom Modules

  • 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.

Directory Structure

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.

Getting Started

Clona la repo e installa i pacchetti

$ git clone https://github.com/cyberfolk/node_template.git
$ cd node_template
$ npm install

Crea e compila .env.dev partendo da env.

Esegui l'Applicazione

$ 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"

License

Questo progetto è software open-source con licenza ISC.

About

License:ISC License


Languages

Language:JavaScript 89.5%Language:EJS 9.3%Language:HTML 0.9%Language:CSS 0.3%