5. Nodejs
Framework che permette di usare V8,
l'interprete JavaScript di Google anche per
realizzare web application e applicazioni
fortemente orientate al networking.
(fonte: html.it)
6. Nodejs
Un primo esempio
Clonare questo progetto da GitHub:
https://github.com/massimobiagioli/techbar-node
Esaminare il file:
techbar-getting-started-01.js
7. Nodejs
Express (http://expressjs.com/)
npm install express --save
- Framework per la creazione di Web Application
- Utilizzato per la realizzazione di API RESTful
- Meccanismo d routing
- Configurabile tramite middlewares
30. MongoDB
MongoDB è un database NoSQL di tipo
document: questo vuol dire che è
particolarmente orientato ad un approccio alla
modellazione di tipo domain driven e ad un
utilizzo “ad oggetti” delle entità.
(fonte: html.it)
31. MongoDB
Non esiste il concetto di “Tabella” (elemento
chiave dei RDBMS).
Esiste invece quello di “Collection”.
36. Mongoose
E’ un modulo che consente di interfacciare
NodeJs con MongoDb.
Si basa sul concetto di “Schema” per la
rappresentazione delle collection di MongoDb.
37. Mongoose
Oltre alle classiche operazioni “CRUD”,
consente anche di effettuare la validazione dei
modelli, in funzione delle regole definite nello
Schema.
41. Mongoose
Schema: definizione della struttura della collection
var EventSchema = new mongoose.Schema({
title: {type: String, required: true},
speaker: {type: String, required: true},
where: {type: String, required: true},
….
}, {
collection: 'events'
});
42. Mongoose
Model: definizione oggeto basato su uno schema
var Event = mongoose.model('Event', EventSchema)
Attraverso il model è possibile eseguire le classiche operazioni “CRUD” sulla
collection (vedi documentazione mongoose model).
Nell’esempio, la definizione di schemi e modelli sono nel modulo “Models”, che
utilizza mongoose come dipendenza.
43. Mongoose
Popolamento collection “events”
Il file “techbar-initdb.js” mostra un esempio di popolamento della collection
“events”.
Viene chiamato il metodo “save” (in questo caso senza callback).
44. Mongoose
Esempio completo
Nel file “server.js” vengono mostrati i seguenti aspetti:
- Creazione di un server http
- Definizione di routes
- Definizone del modulo “Routes” (CRUD)
- Pagina di test (html + js)
45. Mongoose
Esempio completo >> Routes
var
...
Models = require('./lib/Models'),
models = Models.create(mongoose),
Routes = require('./lib/Routes'),
routes = Routes.create(models);