Arriscando meu primeiro aplicativo com Node.js - HerykWS/grupoestudo GitHub Wiki
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!
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!
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