Skip to content

Instantly share code, notes, and snippets.

@IanRamosC
Last active August 29, 2015 14:16
Show Gist options
  • Save IanRamosC/97f3e6f577feada93561 to your computer and use it in GitHub Desktop.
Save IanRamosC/97f3e6f577feada93561 to your computer and use it in GitHub Desktop.
var http = require("http");
var db = require("./config/db");
var Controller = require("./controller.js");
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain; charset=utf-8"});
var url = request.url;
switch(url) {
case '/beers':
Controller.retrieve(request, response);
break;
case '/beers/create':
Controller.create(request, response);
break;
case '/beers/update':
Controller.update(request, response);
break;
case '/beers/delete':
Controller.delete(request, response);
break;
default:
response.end('Rota não encontrada.');
}
}).listen(3000);
console.log('Server running at http://localhost:3000/');
var Beer = require('./model.js');
var Controller = {
create: function(req, res){
var dados = {
name: 'Skol',
description: 'Mijo de rato',
alcohol: 4.5,
price: 3.0,
category: 'pilsen'
};
var model = new Beer(dados);
model.save(function (err, data) {
if (err){
console.log('Erro: ', err);
res.end('Erro: ' + err);
}
else{
console.log('Cerveja Inserida: ', data);
res.end('Cerveja Inserida: ' + JSON.stringify(data));
}
});
},
retrieve: function(req, res){
var query = {};
Beer.find(query, function (err, data) {
if (err){
res.end('Erro: ' + err);
}
else{
res.end('Cervejas Listadas: ' + JSON.stringify(data));
}
});
},
update: function(req, res){
var query = {name: /skol/i}
, mod = {alcohol: 666};
Beer.update(query, mod, function (err, data) {
if (err){
res.end('Erro: ' + err);
}else{
res.end('Cerveja atualizada com sucesso' + JSON.stringify(data));
}
});
},
delete: function(req, res){
var query = {name: /skol/i}
, mod = {alcohol: 666};
Beer.remove(query, function (err, data) {
if (err){
res.end('Erro: ' + err);
}
else{
res.end('Cerveja deletada com sucesso' + JSON.stringify(data));
}
});
}
};
module.exports = Controller;
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/workshop-online-marco-2015');
var db = mongoose.connection;
db.on('error', function(err){
console.log('Erro de conexao.', err)
});
db.on('open', function () {
console.log('Conexão aberta.')
});
db.on('connected', function(err){
console.log('Conectado')
});
db.on('disconnected', function(err){
console.log('Desconectado')
});
module.exports = db
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var BeerSchema = new Schema({ name: { type: String, default: '' }
, description: { type: String, default: '' }
, alcohol: { type: Number, min: 0, default: '' }
, price: { type: Number, min: 0, default: '' }
, category: { type: String, default: ''}
, created_at: { type: Date, default: Date.now }
});
module.exports = mongoose.model('Beer', BeerSchema);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment