Pereira Caio Ribeiro - Node.js. Aplicacoes web real time com Node.js стр 12.

Шрифт
Фон

um projeto inicial com suporte a sessões, Template engine (por padrão ele inclui o

framework Jade) e um CSS engine (por padrão ele utiliza CSS puro). Para visualizar

todas as opções execute o comando: express -h

Figura 4.2: Opções do Express em modo CLI.

4.3

Criando um projeto de verdade

Vamos criar uma aplicação de verdade com Express? Dessa vez, criaremos um pro-

jeto que será trabalhado durante os demais capítulos do livro, e criaremos uma

agenda de contatos em que seus contatos serão integrados em um web chat fun-

cionando em real-time.

Os requisitos do projeto são:

O usuário deve criar, editar ou excluir um contato;

O usuário deve se logar informando seu nome e e-mail;

O usuário deve conectar ou desconectar no chat;

O usuário deve enviar e receber mensagens no chat somente entre os contatos

online;

O nome do projeto será Ntalk (Node talk) e utilizaremos as seguintes tecnologias:

Node.js: Backend do projeto;

MongoDB: Banco de dados NoSQL orientado a documentos;

33

4.3. Criando um projeto de verdade

Casa do Código

Redis: Banco de dados NoSQL para estruturas de chave-valor;

Express: Framework para aplicações web;

Socket.IO: Módulo para comunicação real-time;

MongooseJS: ODM (Object Data Mapper) MongoDB para Node.js;

Node Redis: Cliente Redis para Node.js;

EJS: Template engine para implementação de html dinâmico;

Mocha: Framework para testes automatizados;

SuperTest: Módulo para emular requisições que será utilizado no teste de in-

tegração;

Nginx: Servidor Web de alta performance para arquivos estáticos;

Exploraremos estas tecnologias no decorrer desses capítulos, então muita calma

e boa leitura!

Caso você esteja com pressa de ver este projeto rodando, você pode cloná-

lo através do meu repositório público: (https://github.com/caio-ribeiro-pereira/

livro-nodejs) .

Para instalá-lo em sua máquina faça os comandos a seguir:

git clone git@github.com:caio-ribeiro-pereira/livro-nodejs.git

cd livro-nodejs/projeto/ntalk

npm install

npm start

E depois acesse no seu navegador favorito o endereço:

http://localhost:3000

Agora se você quer aprender passo a passo a desenvolver este projeto, continue

lendo este livro, seguindo todas as dicas que irei passar.

Criaremos o diretório da aplicação já com alguns recursos do Express que é ge-

rado a partir de seu CLI. Para começar, execute os seguintes comandos:

express ntalk --ejs

cd ntalk

npm install

Parabéns! Você acabou de criar o projeto ntalk.

34

Casa do Código

Capítulo 4. Iniciando

com o Express

4.4

Gerando scaffold do projeto

Ao acessar o diretório do projeto, veja como foi gerado o seu scaffold:

Figura 4.3: Estrutura do Express.

package.json: contém as principais informações sobre a aplicação como:

nome, autor, versão, colaboradores, url, dependências e muito mais.

public: pasta pública que armazena conteúdo estático, por exemplo: ima-

gens, css, javascript etc.

app.js: arquivo que inicializa o servidor do projeto, através do comando:

node app.js.

routes: diretório que mantém todas as rotas da aplicação.

views: diretório que contém todas as views que são renderizadas pelas rotas.

Ao rodarmos o comando npm install, por padrão ele instalou as dependên-

cias existentes no package.json. Neste caso, ele apenas instalou o Express e o EJS

(Embedded Javascript).

Vamos fazer algumas alterações nos códigos gerados pelo scaffold do Express. O

primeiro passo será criar uma descrição sobre o nosso projeto e definir false o

atributo private. Isso tudo será modificado no arquivo package.json, veja o

código abaixo como ficou:

35

4.4. Gerando scaffold do projeto

Casa do Código

{

"name": "ntalk",

"description": "Node talk - Agenda de contatos",

"private": false,

"version": "0.0.1",

"scripts": {

"start": "node app.js"

},

"dependencies": {

"express": "3.4.7",

"ejs": "0.8.5"

}

}

Também modificaremos o app.js, deixando-o com o mínimo de código pos-

sível para explicarmos em baby-steps o que realmente será necessário no desenvolvi-

mento deste projeto. Recomendo que apague o código gerado pelo scaffold e coloque

o código abaixo:

var express = require('express')

, routes = require('./routes');

var app = express();

app.set('views', __dirname + '/views');

app.set('view engine', 'ejs');

app.use(express.static(__dirname + '/public'));

app.get('/', routes.index);

app.get('/usuarios', routes.user.index);

app.listen(3000, function(){

console.log("Ntalk no ar.");

});

Essa versão inicialmente atende os requisitos mínimos de uma aplicação Express.

A brincadeira começa quando executamos a função express(), pois o seu retorno

habilita todas as suas funcionalidades de seu framework, pelo qual armazenamos na

variável app.

Com app.listen() fazemos algo parecido com o http.listen(), ou seja,

ele é um alias responsável por colocar a aplicação no ar.

36

Casa do Código

Capítulo 4. Iniciando com o Express

Os métodos app.get(), app.post(), app.put() e app.del() são

funções de roteamento, cada uma delas associa seus respectivos métodos do pro-

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке