@topleftdev
petej.org
Global
Local
item = {
name: 'chair',
quantity: 8,
_id: '42989d40fvldjfvr98',
_v: 0
}
item.quantity += '2'
console.log(item);
==> {
name: 'chair',
quantity: '82',
_id: '42989d40fvldjfvr98',
_v: 0
};
Un-enforced Schema - Bad
item = new Item {
name: 'chair',
quantity: 8,
_id: '42989d40fvldjfvr98',
_v: 0
}
item.quantity += '2'
==> TypeCast Error!
Enforced Schema - Good
var itemSchema = new Schema({
name: String,
quantity: Number
});
customerInfo = {
businessName: 'Denver Pizza Co.'
city: 'Denver',
state: 'Colorado',
_id: '42989d40fvldjfvr98',
_v: 0
}
cutomerInfo = {
businessName: [
'Bluebird Theater',
'Ogden Theater',
'Dazzle Jazz Club'
],
city: 'Denver',
state: 'Colorado',
_id: '42989d40fvldjfvr98',
_v: 0
}
Un-enforced Schema - POWERFUL!
var cutomerInfoSchema = new Schema({
businessName: Mixed,
city: String,
state: String
});
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var itemSchema = new Schema ({
name: String,
type: String
});
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var itemSchema = new Schema ({
name: String,
type: String
});
var Item = mongoose.model('items', itemSchema);
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var itemSchema = new Schema ({
name: String,
type: String
});
var Item = mongoose.model('items', itemSchema);
mongoose.connect('mongodb://localhost/mongo-crud');
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var itemSchema = new Schema ({
name: String,
type: String
});
var Item = mongoose.model('items', itemSchema);
mongoose.connect('mongodb://localhost/mongo-crud');
module.exports = Item;
var express = require('express');
var router = express.router;
var Item = require('../database.js);
router.post('/items', function(req, res, next) {
var newItem = new Item({name: req.body.name, type: req.body.type});
newItem.save(function(err, data){
if (err) {
res.json(err);
}
else {
res.json(data);
}
});
});
$ http -f POST localhost:3000/items name='bicycle' type='vehicle'
var express = require('express');
var router = express.router;
var Item = require('../database.js);
router.get('/items', function(req, res, next) {
Item.find({}, function(err, data){
if (err) {
res.json(err);
}
else if (data.length===0) {
res.json({message: 'There are no items in the database.'});
}
else {
res.json(data);
}
});
});
$ http GET localhost:3000/items
ObjectId(xxxxxxxxxx).getTimeStamp()
https://github.com/iolo/mongoose-q
var express = require('express');
var router = express.router;
var Item = require('../database.js);
router.get('/items', function(req, res, next) {
Item.find({}, function(err, data){
if (err) {
res.json(err);
}
else if (data.length===0) {
res.json({message: 'There are no items in the database.'});
}
else {
res.json(data);
}
});
});
var express = require('express');
var router = express.router;
var Item = require('../database.js);
var mongoose = require('mongoose-q')(require('mongoose'));
router.get('/items', function(req, res, next) {
Item.findQ({})
.then(function(response){ res.json(response);})
.catch(function(err){ res.json(err);})
.done();
});
petej.ghost.io/2015/10/30/node-js-express-mongodb-restful-api/