Node.js e MongoDB na prática!
Autor: Vitor Hansen | Publicado: 2015-10-07T09:35:00-03:00


Na wiki oficial sobre módulos do Node.js&nbsp;https://github.com/joyent/node/wiki/modules&nbsp;existem cerca de 1100 módulos para Node.js e existem 15 módulos para&nbsp;MongoDB&nbsp;com&nbsp;Node.js.

Desses 15 módulos apenas testei 4 pelo qual 3 deles fiquei meio perdido por falta de uma clara documentação e o módulo que tive mais afinidade e facilidade em usar foi o&nbsp;mongoq, inclusive até conheci o autor desse módulo, um chinês muito gente boa que me ajudou, ensinando as boas práticas do seu módulo.

Abaixo irei explicar um pouco de código para criar um mini-aplicativo de cadastro de usuários. Lembrando que utilizarei também o&nbsp;Express&nbsp;que permitie criar as rotas da aplicação, pois o código abaixo apenas apresentarei como fazer um simplescontroller&nbsp;criando as rotas e explorando as funcionalidades do&nbsp;MongoQ, mas não entrarei em detalhes sobre o&nbsp;Express, pois não é o objetivo desse post.

Primeiro, para começarmos a brincadeira, instale os seguintes módulos:

npm install express mongoq


Agora crie o arquivo&nbsp;app.js&nbsp;e mãos a obra!

// Instanciando os módulos Express e Mongoq
var express = require('express');
var mongoq = require('mongoq');

// Configurando a execução do banco MongoDB
var COLLECTION = 'collection_teste';
var DB = 'banco_teste';
var db = mongoq(DB);
var collection = db.collection(COLLECTION);

// Iniciando o servidor Express
var app = module.exports = express.createServer();
// Configuração básica do servidor Express
app.configure(function(){
   app.use(express.bodyParser());
   app.use(express.methodOverride());
   app.use(app.router);
});

// Rota GET para listar os usuários
app.get('/usuarios', function(req, res){
   // Fazendo uma consulta no banco de dados
   collection.find().toArray(function(err, result){
      res.render('index', { usuarios : result });
   });
});

// Rota GET para consultar um usuário
app.get('/usuario/:id', function(req, res){
   // Recebendo os parâmetros de um query string
   var id = req.params.id;
   // Fazendo uma consulta no banco de dados
   var params = {usuario : {id: id}};
   collection.find(params).toArray(function(err, result){
      res.render('ver', { usuario : result.usuario });
   });
});

// Rota POST para cadastrar um usuário
app.post('/usuario', function(req, res){
   // Recebendo os parâmetros da requisição
   var usuario = req.body.usuario;
   // Persistindo o novo usuário
   collection.insert({usuario : usuario});
   res.redirect('/usuarios');
});

// Rota PUT para atualizar um usuário
app.put('/usuario/:id', function(req, res){
   // Recebendo os parâmetros de um query string
   var id = req.params.id;
   // Recebendo os parâmetros da requisição
   var usuario = req.body.usuario;
   // Atualizando dados do usuário que possuir este id
   collection.update({usuario: {id: id }}, {usuario : usuario});
       res.redirect('/usuarios');
   });

// Rota DELETE para excluir um usuário
app.del('/usuario/:id', function(req, res){
   // Recebendo os parâmetros de um query string
   var id = req.params.id;
   // Excluindo o usuário do banco de dados
   collection.remove({usuario : {id: id }});
   res.redirect('/usuarios');
});


Na prática este simples código já exemplifica o poder que&nbsp;Node.js + MongoDB + Express&nbsp;pode fazer.

Para conhecer em mais detalhes essas tecnologias visite:

Site Oficial do MongoDB:&nbsp;http://www.mongodb.org/
Site Oficial do Node.js:&nbsp;http://nodejs.org/
Site Oficial do Express:&nbsp;http://expressjs.com/
Github do MongoQ:&nbsp;https://github.com/zzdhidden/mongoq


fonte:&nbsp;http://udgwebdev.com/um-pouco-de-node-js-e-mongodb-na-pratica/

Vitor Yudi Hansen