03: Documents, MongoDB, Mongoose

$19.24 for Kindle edition @ Amazon
(kan leses online)
Tar et par timer å bla gjennom
(eller en uke å løse oppgavene til)
Lenes tungt på
Det er under 150 kroner
Pls read it


http://phpflow.com/wp-content/uploads/2012/07/rest-websrvices.jpg
var server = require('express')();
var bodyParser = require('body-parser');
server.use(bodyParser.json());
var port = 5432;
server.get('/api', function(req, res) {
return res.status(201).send({message: 'hi'});
});
server.post('/api', function(req, res) {
console.log(req.body);
return res.send(req.body);
});
server.listen(port);
console.log('listening on: ' + port);server.use(express.static(__dirname + './path/to/static/files'));



$ mongo exampleDb
MongoDB shell version: 2.6.5
connecting to: exampleDb
> db.users.insert({username: 'Theneva'})
WriteResult({ "nInserted" : 1 })
> db.users.insert({username: 'HeroK0'})
WriteResult({ "nInserted" : 1 })
> db.users.find()
{ "_id" : ObjectId("54c5fbe88ede449775e517d2"), "username" : "Theneva" }
{ "_id" : ObjectId("54c5fbf58ede449775e517d3"), "username" : "HeroK0" }http://docs.mongodb.org/manual/installation/
OSX-PS:
$ brew info mongodb

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var Cat = mongoose.model('Cat', { name: String });
var kitty = new Cat({ name: 'Zildjian' });
kitty.save(function (err) {
if (err) // ...
console.log('meow');
});var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/exampleDb', function() {
console.log('Connected to MongoDB');
});
var personSchema = new mongoose.Schema({
name: { type: String, required: true },
email: { type: String, required: true }
});

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/exampleDb', function() {
console.log('Connected to MongoDB');
});
var personSchema = new mongoose.Schema({
name: { type: String, required: true },
email: { type: String, required: true }
});
var Person = mongoose.model('Person', personSchema);
var a = new Person({
name: 'Rebecca Black',
email: 'rebecca@rebeccablackonline.com'
});
a.save();RAM-"persistering" i Express
var express = require('express');
var app = express();
app.use(require('body-parser').json());
var artists = [
'Rebecca Black',
'Double Take',
'Alison Gold',
'Jenna Rose',
'Alana Lee'
];
app.get('/', function(req, res) {
res.send(artists);
});
app.post('/', function(req, res) {
artists.push(req.body.name); // some artist name
res.status(201).send();
});
app.listen(2345);PS: Fantastiske artister
var app = require('express')();
var mongoose = require('mongoose');
app.use(require('body-parser').json());
var personSchema = new mongoose.Schema({
name: { type: String, required: true }
});
var Person = mongoose.model('Person', personSchema);
app.get('/person', function(req, res) {
var person = new Person({
name: 'Martin'
});
res.send(person);
});
app.listen(1234);
EKSEMPEL: Fra bunnen av, med persistering

EKSEMPEL: Bower + enkel Angular-app