Questo esempio sfrutta la libreria Mongoose in Node.js.
Mongoose è una libreria JavaScript orientata agli oggetti che crea una connessione tra MongoDB e il framework dell'applicazione web Express.
Può essere affiancata a framework front-end come Angual, React, etc.
Con il seguente comando da terminale, specifico per Node, verranno scaricate tutte le dipendenze elencate in package.json:
$ npm installAl termine del download, basterà avviare il progetto sempre tramite Node:
$ npm startO in alternativa:
$ node server.jsIn entrambi modi verrà avviato automaticamente il main file server.js, che metterà il servizio API, in ascolto sulla porta 5000
Le directory del progetto sono composte nel seguente modo:
Mongoose_example/
│
├── middleware/
│ └── crud_user.js
│
├── model/
│ └── user.js
│
└── server.js
Nel dettaglio:
-
server.jsè il main file del progetto, contiene:-
la connesione con il database
mongoose.connect('mongodb://localhost:27017/mongo-test');
-
la gestione di rooting con Express.js per indirizzare i metodi di request alle CRUD
const app = express(); app.use(express.json()); app.get('/user', async function(req, res) { let resp = await User.getUser(req) res.send(resp); });
-
l'esposizione del servizio sulla porta
5000app.listen(5000, (req, res) => { console.log('Server is running on 5000 port.'); });
-
il servizio sfrutta il meccanismo CORS (Cross-Origin Resource Sharing) attraverso l'omonima dipendenza
const cors = require('cors'); const allowedOrigins = ['http://localhost:5000']; app.use(cors({ origin: allowedOrigins }));
-
-
all'interno di
model/troviamo i modelli che disegneranno e tipizzeranno la struttura dei dati che desideriamo inserire all'interno del database di MongoDB -
in
middleware/troviamo il file che contengono le CRUD (Create, Read, Update, Delete) per ogni rispettivo model.I metodi di CRUD vengono richiamati all'interno del file
server.js, rispettivamente all'interno di ogni specifica root definita con express.js.Invocando il rispettivo metodo, viene passato al suo interno la request
reqe la CRUD la elabora per restituire la responserescreateUser: async (req) => { let user = req.body const newUser = new User({ nome: user.nome, cognome: user.cognome }); const result = await newUser.save() };
L'applicativo sfrutta le seguente dipendenze:
L'applicazione necessita di: