Arriscando meu primeiro aplicativo com Node.js - HerykWS/grupoestudo GitHub Wiki

1o Dia - 2014/06/07

Tempo estimado: (Aprox 2h de pesquisa, desenvolvimento e descrição dos passos) Objetivo: Configurar, executar aplicação com hotdeploy e build uma simples aplicação utilizando node.js

Ferramentas utilizadas

  • Node.js - Web Server e BackEnd
  • NodeMon - HotDeploy
  • Express -
  • Express-Generator - Template inicial de projeto (Analogo ao GooglePlay)
  • MongoDB - Banco de dados NoSql
  • Heroku - Building

Mão na massa

Após todo o ambiente configurado criarei meu primeiro projeto chamado "artigos" com a ajuda do express rodando o seguinte comando no terminal:

express artigo

É necessário instalar as dependências do projeto, para realizar tal tarefa devemos acessar a pasta do projeto e rodar o seguinte comando no terminal:

cd artigos

npm install

Com o esqueleto do projeto pronto e configurado vou adiciona-lo no github.

git init git add . git commit -m "Carga inicial" git remote add origin https://github.com/HerykWS/artigos.git git push -u origin master

Pronto! Vamos rodar a aplicação. Descobrindo o que o express criou eu puder perceber que a pasta www é como se fosse uma compilação do projeto o que me levou a página do express novamente para saber como rodar a aplicação. Ao rodar o seguinte comando npm start minha aplicação startou, porém não sabia em qual porta estava respondendo. Procurei um pouco nos arquivos gerados pelo express e descobri no arquivo www da pasta bin a porta 3000 e digitei no browser

localhost:3000

Tudo funcionando uma maravilha, então agora era a hora de colocar o NodeMon em ação. Notei que ao rodar o npm start ele executava

node ./bin/www 3000

e por lógica troquei o node por nodemon e tchan tchan tchan tchan tchan! Deu certo! Meu hotdeploy estava funcionando.

nodemon ./bin/www 3000

Olhando um pouco mais os arquivos gerados pelo express, encontrei o arquivo package.json onde se encontrava o "start": "node ./bin/www que troquei por

"start": "nodemon ./bin/www

Agora o hotdeploy funciona com o comando

npm start

PRONTO! Tudo funcionando como esperado! Objetivo concluído com sucesso!

2o Dia - 2014/06/18

Tempo estimado: (Aprox 1h30m de pesquisa, desenvolvimento e descrição dos passos) Objetivo: Conectar com MongoDb e exibir uma lista de usuários

Ferramentas utilizadas

  • MongoQ - Conector do mongoDB encontrado no NPM

Mão na massa

Pesquisando na web encontrei um projeto no npm chamado mongoq, que facilita a conexão com o banco de dados mongoDb. Instalei ele na minha aplicação utilizando o seguinte comando:

npm install mongoq

Pronto! Agora é hora de usar o conector de acordo com a pesquisa realizada, porém vamos mais além, vamos criar uma rota chamada artigos para realizar a busca no banco de dados para não deixar tudo na pagina principal. Alterei o arquivo chamado app.js na pasta principal do projeto adicionando as seguintes linhas:

var artigos = require('./routes/artigos');

e

app.use('/artigos', artigos);

Que vincula a rota no browser :/artigos(Ex: localhost:7272/artigos) a variavel artigos criada acima, onde vamos criar o arquivo artigos.js na pasta routes com as seguintes instruções:

var express = require('express'); var router = express.Router(); var mongoq = require('mongoq');

var _collection = 'artigo'; var _db = 'db_artigo'; var db = mongoq(_db); var collection = db.collection(_collection);

router.get('/', function(req,res){ collection.find().toArray(function(err, result) { res.send(result); });

});

module.exports = router;

Agora é só chamar a aplicação no meu caso:

localhost:7272/artigos

Xiiii, não apareceu nada??? Eu acho que sabemos o por que certo? Não existem dados no nosso bando de dados. Vamos criar usando os seguintes comandos:

mongo use db_artigo i = {artigo:'Conectando com mongoDB'} db.artigo.insert(i)

Agora é só atualizar nossa aplicação no browser ... e tchan tchan tchan tchan!

PRONTO! Tudo funcionando como esperado! Objetivo concluído com sucesso!

2o Dia - 2014/06/18

Tempo estimado: (Aprox 20m de pesquisa, desenvolvimento e descrição dos passos) Objetivo: Definir nosso modelo de dados no MongoDb

Mão na massa

Primeiro vamos excluir a tabela criada chamada artigo e recria-la com um artigo exemplo, que posteriormente será retornado por nossa aplicação nodejs. Para isso executaremos os seguintes comandos:

mongo db.artigos.drop() i = {nm_autor: 'Heryk Willians Simões', dt_artigo: 2014/06/18, nm_artigo: 'Meu primeiro artigo!', nm_artigo_integra: 'Primeiro artigo que será gerado posteriormente.'} db.artigo.insert(i)

Pronto! Agora vamos

⚠️ **GitHub.com Fallback** ⚠️