São 5 sessões:
- C10K: Node.js, o Javascript no lado Servidor;
- Banco de dados No SQL com MongoDB;
- RESTful Webservices com Express.js;
- Criação de páginas dinâmicas com Angular.js;
- Exemplo prático.
Antes de começar, tem o "Setup" do curso, mas não se preocupe, pois eu criei tudo o que você vai necessitar!
Há três opções parar você montar seu ambiente:
Há três opções parar você montar seu ambiente:
- Usar a IDE em nuvem Cloud9;
- Criar uma VM com o template que eu forneci - Vagrantfile;
- Instalar tudo em sua própria máquina.
Vou te ajudar a escolher a maneira mais apropriada para você.
Sessão 0: Manual de preparação de ambiente
O trabalho Workshop de
Desenvolvimento com Stack MEAN de Cleuton Sampaio de Melo Jr está
licenciado com uma Licença Creative Commons -
Atribuição-CompartilhaIgual 4.0 Internacional.
Isso inclui: Textos, páginas,
gráficos e código-fonte.
Para poder acompanhar este curso, é
necessário que você prepare um ambiente de desenvolvimento. A
plataforma escolhida é o Linux, e nós usamos o Ubuntu, versão
14.04.
Você pode baixar o Ubuntu AQUI.
Além do Ubuntu, nós usamos:
A instalação é de média
complexidade, ou seja, você tem toda a condição de fazer sem
problemas. Para isto, basta seguir estas orientações.
Se quiser poupar trabalho, eu incluí
um Vagrant file, que inicia e provisiona uma máquina Ubuntu
para você usar.
Mesmo que você prefira usar o Vagrant
file e criar uma VM pronta, recomendo que você leia atentamente
estas instruções. Existem dicas de testes e configurações
importantes, por exemplo, sobre o serviço “mongod”, do MongoDB.
A IDE Cloud9 é um ambiente completo para desenvolver software em nuvem. Eu já postei um artigo sobre ela, e é extremamente vantajoso utilizá-la.
Para acompanhar o curso
Você precisa acessar o material, que estará disponível dentro do site do Bom Programador:
E você precisa baixar os exemplos que estão no Github:
Se você quiser, poderá clonar o repositório do Github, criando um repositório Git local, ou então poderá baixar um ZIP contendo tudo.
Depois, você vai precisar de uma estação de trabalho configurada com a plataforma que já falei. Se preferir, poderá instalar tudo manualmente, ou então, poderá usar o Vagrantfile, que está no repositório do Github, para criar e provisionar uma VM para você.
Usar tudo na nuvem - Cloud9
Nada é instalado em sua estação de trabalho, mas você precisará de acesso liberado ao Cloud9.A IDE Cloud9 é um ambiente completo para desenvolver software em nuvem. Eu já postei um artigo sobre ela, e é extremamente vantajoso utilizá-la.
Se você quiser usar, acesse o side da IDE e faça logon. Se não tiver uma conta, crie-a.
Crie uma nova workspace, selecionando "custom" como a plataforma de software. Isto criará uma workspace vazia.
Abra uma janela terminal (menu "Window / New terminal", ou ALT-T) e instale o express-generator:
sudo npm install -g express-generator
O MongoDB já está instalado. Para usá-lo, digite os comandos:
mkdir data
echo 'mongod --bind_ip=$IP --dbpath=data --nojournal --rest "$@"' > mongod
chmod a+x mongod
Agora, para iniciar o mongod, rode o comando:
./mongod
Agora, o MongoDB está rodando. para conferir, abra um novo terminal e digite:
mongo
Agora, para gerar uma aplicação express, abra um terminal e digite o comando:
express <nome-da-aplicação>
O <nome-da-aplicação> será o nome da pasta criada. Não use acentuação nem espaços.
Abra a pasta gerada.
Edite o arquivo "package.json" para incluir os módulos que você deseja usar, e rode o comando:
npm install
Só falta uma coisa para rodar sua aplicação: configurar a execução. Clique com o botão direito no botão "Run", e escolha "New run configuration". Na janela que aparecerá, selecione o diretório de trabalho (botão "CWD") e aponte para a pasta que o express criou.
Selecione o botão "Runner" e escolha o tipo de comando como "Shell command". Na caixa de texto "Command", digite "npm start".
Para executar o programa, é só clicar no botão "Run". Para abrir um navegador e ver a página criada, clique no botão "Preview" (no topo) e selecione "Preview with Web Server".
Crie uma nova workspace, selecionando "custom" como a plataforma de software. Isto criará uma workspace vazia.
Abra uma janela terminal (menu "Window / New terminal", ou ALT-T) e instale o express-generator:
sudo npm install -g express-generator
O MongoDB já está instalado. Para usá-lo, digite os comandos:
mkdir data
echo 'mongod --bind_ip=$IP --dbpath=data --nojournal --rest "$@"' > mongod
chmod a+x mongod
Agora, para iniciar o mongod, rode o comando:
./mongod
Agora, o MongoDB está rodando. para conferir, abra um novo terminal e digite:
mongo
Agora, para gerar uma aplicação express, abra um terminal e digite o comando:
express <nome-da-aplicação>
O <nome-da-aplicação> será o nome da pasta criada. Não use acentuação nem espaços.
Abra a pasta gerada.
Edite o arquivo "package.json" para incluir os módulos que você deseja usar, e rode o comando:
npm install
Só falta uma coisa para rodar sua aplicação: configurar a execução. Clique com o botão direito no botão "Run", e escolha "New run configuration". Na janela que aparecerá, selecione o diretório de trabalho (botão "CWD") e aponte para a pasta que o express criou.
Selecione o botão "Runner" e escolha o tipo de comando como "Shell command". Na caixa de texto "Command", digite "npm start".
Para executar o programa, é só clicar no botão "Run". Para abrir um navegador e ver a página criada, clique no botão "Preview" (no topo) e selecione "Preview with Web Server".
Instalação com o Vagrant file
Para instalar uma máquina virtual na sua estação de trabalho, de forma automática.
Primeiramente, instale o Vagrant em sua
máquina:
- Linux, Microsoft Windows e Apple Mac OSX: https://www.vagrantup.com/downloads;
Em segundo lugar, instale o Virtualbox
em sua máquina:
- Linux, Microsoft Windows e Apple Mac OSX: https://www.virtualbox.org/wiki/Downloads;
Depois, você tem que acessar o projeto
do curso no Github (“https://github.com/cleuton/cursomean”).
De lá, você pode fazer duas coisas:
- Clonar o repositório Git;
- Baixar um ZIP file.
Depois de clonar ou baixar, entre na
pasta do curso e rode o comando:
vagrant
up
Vai demorar um tempinho, pois o Vagrant
vai criar uma VM usando o Virtualbox, vai baixar a imagem do Ubuntu e
vai instalar a parada toda. Demora entre 10 e 15 minutos, dependendo
da velociadade da sua Internet.
Aliás, VOCÊ TEM QUE TER INTERNET!
Ao subir a VM, você notará que existe
uma pasta compartilhada “/vagrant”, contendo os arquivos de cada
sessão do Workshop. Para executar um exemplo, copie a sessão
inteira para a sua pasta “home” no Ubuntu virtual:
cd
~
cp
-r /vagrant/sessao1 .
Depois, é só entrar na pasta e rodar
o exemplo.
Agora, se você quiser editar, isso
pode ser um problema... Infelizmente, não há ofertas de boxes
Vagrant com Gnome instalado. Então, você vai ter que usar “vi”!
Outra solução é editar no seu sistema “host” e depois copiar
para o “guest”.
Instalação manual
Para instalar tudo localmente na sua máquina, que deverá ser Ubuntu ou compatível.
Após dar boot no Ubuntu, abra uma
janela terminal e rode o seguinte comando, para atualizar o banco de
pacotes:
sudo
apt-get update
Após a execução bem sucedida, você
deve estar vendo essa tela:
Instalação do Node.js
A segunda parte é a instalação do
“node.js”. Rode o comando abaixo no mesmo terminal:
sudo
apt-get install nodejs
Eis o resultado:
Por problemas com nome de pacote
semelhante, o executável do “node.js” no Ubuntu é diferente.
Ele vem com o nome “nodejs”. Se você preferir, use dessa forma,
se não, crie um soft link para ele com o nome original “node”:
sudo
ln -s /usr/bin/nodejs /usr/bin/node
Durante o curso, o comando node.js que
vou usar é “node”. Se você tem algum pacote instalado que
conflite com esse nome ou preferir usar o comando do Ubuntu “nodejs”,
então deve considerar isso e fazer as modificações necessárias.
Vamos testar se o node.js está
funcionando. No terminal, digite esses comandos:
cat
> teste.js
console.log('ok');
+ (CTRL-Z)
node
teste
Este é o resultado que deve obter (o
string “ok” exibido no terminal):
Instalação do NPM - Node Package Manager
O ecossistema do Node.js é muito rico,
com muitos pacotes que você pode baixar e usar. Eles são chamados
de NPM - Node Packaged Modules, e podem ser selecionados com o
utilitário NPM - Node Package Manager.
Vamos instalar o NPM digitando os
comandos a seguir no terminal:
sudo
apt-get install npm
Agora, teste se o NPM está funcionando
com o comando:
npm
-v
Ele deve mostrar a versão do npm
instalada.
Instalação do Express Generator
O Express.js é dividido em duas
partes: o Generator, que é um assistente para criação de
aplicações Express.js, e o módulo, que tem as bibliotecas e APIs.
O Express Generator é instalado
globalmente, com um comando disponível para uso. O Módulo Express é
instalado em cada aplicação que criamos.
Para instalar o Express Generator,
digite no terminal:
sudo
npm install -g express-generator
sudo
ln -s /usr/local/lib/node_modules/express-generator/bin/express
/usr/bin/express
Primeiro,
instalamos
o Express Generator na biblioteca global do Node (npm install -g).
Depois, temos que criar um soft link para o executável do Express.
Agora,
vamos testar se o express foi instalado com sucesso:
express
--version
Ele deve mostrar sua versão.
Instalação do MongoDB
Para instalar a última versão do
MongoDB, eu recomendo que você evite usar os pacotes nativos do
Ubuntu. Para baixarmos do repositório do MongoDB, precisamos seguir
alguns passos. Primeiramente, devemos acrescentar a chave de
assinatura do pacote ao nosso sistema. Digite o comando:
sudo
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
Depois, digite os comandos abaixo na
ordem em que estão (sem quebra de linha):
echo
'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist
10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo
apt-get update
sudo
apt-get install mongodb-org
Agora, vamos iniciar o serviço “mongod”, que é o daemon do
MongoDB:
sudo
service mongod start
Para testar se o MongoDB está rodando,
digite no terminal:
mongo
Se tudo der certo, você vai entrar no
cliente interativo do MongoDB.
Para usar o MongoDB em seus projetos
Node.js, você deve instalar o driver apropriado em sua aplicação,
rodando o seguinte comando em cada pasta de aplicação Node.js que
você usar:
npm
install mongodb
Problemas de inicialização do
MongoDB
Em certos casos, após o boot da
máquina, o serviço “mongod” não sobe, dando erro. Você pode
verificar isso no log:
/var/log/mongodb/mongod.log
Se você ligar a máquina, digitar
“mongo” e tomar um erro, pode ser que o arquivo de “lock” não
tenha sido apagado. Neste caso, verifique se existe um arquivo
“mongod.lock” na pasta:
/var/lib/mongodb/mongod.lock
Se existir, apague-o e tente subir o
serviço novamente com o comando:
sudo
service mongod start
Então, tente rodar o cliente
interativo novamente (comando: “mongo”).
Para evitar que esse problema aconteça,
procure SEMPRE parar o serviço “mongod” ANTES de desligar a
máquina:
sudo
service mongod stop
Nota sobre máquinas virtuais
Eu usei uma VM criada com o Virtualbox
para executar todos os exemplos do curso. Eu fiz isso porque uso
vários sistemas operacionais, incluindo Mac OSX e Microsoft Windows.
Então, para uniformizar o treinamento, escolhi criar uma VM com
Ubuntu 14.04.
O NPM e o Express não funcionam bem
com pastas compartilhadas, então, é melhor que você use apenas as
pastas locais da sua VM para criar e rodar as aplicações. Depois,
pode copiar os seus projetos para uma pasta compartilhada. No caso do
Vagrant é a pasta “/vagrant”.
Good to go
Bem, o resto você vai instalar conforme o caso. Então, você já está pronto(a) para iniciar o curso.
- Exercícios e Vagrantfile para acompanhar o curso;
- Sessão zero: Setup;
- Sessão 1: C10K: Node.js, o Javascript no lado Servidor;
- Sessão 2: Banco de dados No SQL com MongoDB;
- Sessão 3: RESTful Webservices com Express.js;
- Sessão 4: Criação de páginas dinâmicas com Angular.js;
- Sessão 5: Exemplo prático;
Nenhum comentário:
Postar um comentário