Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2014
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var http = require("http");
  2.  
  3. var mongoose = require('mongoose');
  4. mongoose.connect('mongodb://localhost/workshop-criciuma');
  5.  
  6. var db = mongoose.connection;
  7. db.on('error', function(err){
  8.     console.log('Erro de conexao.', err)
  9. });
  10. db.once('open', function () {
  11.   console.log('Conexão aberta.')
  12. });
  13.  
  14. var Schema = mongoose.Schema;
  15.  
  16. var BeerSchema = new Schema({
  17.   name: { type: String, default: '' },
  18.   description: { type: String, default: '' },
  19.   alcohol: { type: Number, min: 0},
  20.   price: { type: Number, min: 0},
  21.   category: { type: String, default: ''},
  22.   created: { type: Date, default: Date.now }
  23. });
  24.  
  25. var Beer = mongoose.model('Beer', BeerSchema);
  26.  
  27. var cb = function(err, data, res, msg){
  28.   var _msg = msg;
  29.   if (err){
  30.     _msg = 'Erro: '+ err;
  31.   }
  32.   console.log(_msg);
  33.   res.end(_msg);
  34. }
  35.  
  36. http.createServer(function(req, res) {
  37.   res.writeHead(200, {"Content-Type": "text/plain;charset=utf8"});
  38.  
  39.   var url = req.url;
  40.   // res.write('Hello World');
  41.   console.log('URL: ', url);
  42.  
  43.   switch(url){
  44.     case '/create':
  45.       var dados = {
  46.         name: 'Skol',
  47.         description: 'Mijo de Rato',
  48.         alcohol: 4.5,
  49.         price: 3,
  50.         category: 'pilsen'
  51.       }
  52.  
  53.       var model = new Beer(dados);
  54.  
  55.       model.save(function (err, data) {
  56.         var msg = 'Cerveja '+data.name+' cadastrada com sucesso';
  57.         cb(err, data, res, msg);        
  58.       });
  59.  
  60.     break;
  61.     case '/retrieve':
  62.       Beer.find({}, function (err, data) {
  63.         var msg = 'Cervejas listadas: '+JSON.stringify(data);
  64.         cb(err, data, res, msg);
  65.       });
  66.     break;
  67.     case '/update':
  68.       var query = {name: 'Skol'};
  69.       var mod = {alcohol: 99};
  70.       var optional = {
  71.           upsert: false,
  72.           multi: true
  73.         };
  74.       Beer.update(query, mod, function (err, data) {
  75.         var msg = 'Cerveja '+query.name+' alterada com sucesso';
  76.         cb(err, data, res, msg);
  77.       });
  78.     break;
  79.     case '/delete':
  80.       var query = {name: 'Skol'};
  81.       Beer.remove(query, function(err, data) {
  82.         var msg = 'Cervejas deletadas: '+data;
  83.         cb(err, data, res, msg);
  84.       });
  85.     break;
  86.     default:
  87.       res.end('Rota não encontrada!');
  88.   }
  89.  
  90. }).listen(3000);
  91. console.log('Server running at http://localhost:3000/');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement