SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
DESENVOLVENDO COM
NODE.JS
Prof. Romulo Fagundes Cantanhede
@romulofagundes
NOSSA META
NoSQL - MongoDB
Node.JS
Express
Mongoose
Mongoose Generator
https://github.com/romulofagundes/app-teste/
NOSQL
…Not Only SQL… Banco de dados não relacional, aonde os
dados não estão diretamente correlacionados, ou seja, com
restrição de integridade (fk).
Vamos entender o MongoDB, que armazena os dados em forma
de documento.
Um exemplo prático: Preciso armazenar todas as preferências do
meu usuário ‘like' facebook (dinâmico). Como diferenciar filmes,
de livros, gostos e afins?
MONGODB
Fundada em 2007, desenvolvido em C++.
Armazena os dados em um formato JSON, com as mesmas
propriedades do JSON, com atributos dinâmicos e afins.
https://www.mongodb.com/
MONGODB
Melhor na prática, para entender!
NODE.JS
Baseado noV8, motor de renderização de código aberto do Google.
Possui a possibilidade de usar JS do lado do servidor, com isso é
possível trabalhar com requisições HTTP’s (por exemplo).
Um linguagem simples dinâmica, e muito leve! Bem como o próprio
JavaScript.
https://nodejs.org/
ANTES DE CONTINUAR…
O que ambos tem em comum?
MongoDB e Node.JS?
EXPRESS.JS
Framework para tratamento de requisição HTTP, que se utiliza
do Node.JS.
Permite meios de tratar as requisições HTTP e trabalhar de
forma simplificada com tais informações.
Mantém as mesmas características do Node.JS, simples e leve.
E como começar?
http://expressjs.com/
EXPRESS.JS GENERATOR
http://expressjs.com/en/starter/generator.html
$ npm install express-generator -g
$ express app-teste

$ cd app-teste && npm install

$ DEBUG=app-teste:* npm start
1
2
3
TECNOLOGIAS DO EXPRESS.JS
Algumas tecnologias pertinentes:
Pug (Jade) - Utiliza código HTML estilo Like Python.
Express - Responsável por tratar as requisições HTTP.
Demais complementos - Trabalhar com as requisições de
forma correta.
MONGOOSE
Ok, ok…creio que todos já ouviram falar de Hibernate. Quem não, é
uma teoria denominada Mapeamento Objeto Relacional, em resumo:
Para cada classe, eu tenho uma tabela.
Para cada atributo, eu tenho uma coluna.
Para cada registro, eu tenho uma instância.
Qual a relação com o Mongoose?
…vamos entender…
http://mongoosejs.com
MONGOOSE - INSTALAÇÃO
Para instalar, dentro da pasta do projeto faça a seguinte "receita
de bolo”: $ npm install mongoose --save
Adicionando conexão ao projeto com Express.js (db/index.js):
var mongoose = require('mongoose');
var options = {
db: { safe: true },
server: {
auto_reconnect: true,
socketOptions: { keepAlive: 1 }
}
};
module.exports = function () {
mongoose.connect(‘mongodb://127.0.0.1:27017/teste-app',options).connection;
};
var db = require('./db')();
Chame a conexão no “app.js”:
MONGOOSE GENERATOR
Complemento, utilizado de forma global, para gerar os Schemas
(domínios), a cada para request(controller) e serviço.
Permite gerar código pronto, de forma simplificada, com base no
mongoose.
Para instalar:
$ npm install -g express-mongoose-generator
EXEMPLO DO MONGOOSE GEN.
mongoose-gen -m Grupo -f descricao -r
mongoose-gen -m Contato -f nome,telefone,dataNascimento:date,preferencias:array,grupo:objectId -r
var grupoRoutes = require('./routes/GrupoRoutes.js');
var contatoRoutes = require(‘./routes/ContatoRoutes.js');
…
app.use('/grupo', grupoRoutes);
app.use('/contato', contatoRoutes);
Criado 2 schema’s: Grupo e Contato (!editar contato - rel. Grupo)
Adiciona as novas rotas, no app.js:
TORNANDO O EXEMPLO MAIS
PRÁTICO…VUE.JS
VUE.JS
Script JS, que facilita a interação do código HTML com o
servidor.
Permite com isso, converter valores de um FORM para um
JSON, e facilita o envio de tais informações…e o que o
MongoDB armazena? E o que o Express recebe?
https://vuejs.org/
VUE.JS
OVue.JS é principalmente dividido em 3 partes:
data - Dados que serão acessados pelo código HTML, modelos
e listas.
created - Função que está no ciclo de vida doVue, para
inicializar valores.
methods - Métodos que serão acessados no código HTML.
VUE.JS
Jade (Pug) file
Grupo JS
VUE.JS
Init
Get List
Create
VUE.JS
Update
Remove
Todas as chamadas(REST) criadas pelo Mongoose Generation!
FIM?
CRUD CONTATO
O arquivo JS basicamente é o mesmo de grupo.
Muda principalmente o FORM, e como os campos são mapeados.
O que fazer em seguida?
Entender a busca, como tratar os valores, e como relacionar os
valores entre schema’s.
Para o CRUD de contato teve um pouco mais de código…
FIM!
LINKS INTERESSANTES
https://scotch.io/tutorials/using-mongoosejs-in-node-js-and-
mongodb-applications
https://scotch.io/tutorials/build-a-restful-api-using-node-and-
express-4

Contenu connexe

Tendances

Mecanismo de Busca com Node.js + MongoDB
Mecanismo de Busca com Node.js + MongoDBMecanismo de Busca com Node.js + MongoDB
Mecanismo de Busca com Node.js + MongoDBLuiz Duarte
 
Backbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectadosBackbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectadosHenrique Gogó
 
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo BranasNode.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo BranasRodrigo Branas
 
JavaScript Model-View no Frontend
JavaScript Model-View no FrontendJavaScript Model-View no Frontend
JavaScript Model-View no FrontendHenrique Gogó
 
Minicurso code igniter aula 2
Minicurso code igniter   aula 2Minicurso code igniter   aula 2
Minicurso code igniter aula 2lfernandomcj
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
Construindo Sistemas Com Django
Construindo Sistemas Com DjangoConstruindo Sistemas Com Django
Construindo Sistemas Com DjangoMarinho Brandão
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScriptThiago Poiani
 
Aula 8 php (intro, get e post)
Aula 8   php (intro, get e post)Aula 8   php (intro, get e post)
Aula 8 php (intro, get e post)andreluizlc
 
Aula 5 java script
Aula 5   java scriptAula 5   java script
Aula 5 java scriptandreluizlc
 
Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)Zeno Rocha
 
Precisamos falar sobre MERN stack
Precisamos falar sobre MERN stackPrecisamos falar sobre MERN stack
Precisamos falar sobre MERN stackSidney Roberto
 
Desenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi BuilderDesenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi BuilderDaniel Paz
 
Tornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JSTornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JSMatheus Donizete
 

Tendances (20)

Mecanismo de Busca com Node.js + MongoDB
Mecanismo de Busca com Node.js + MongoDBMecanismo de Busca com Node.js + MongoDB
Mecanismo de Busca com Node.js + MongoDB
 
Boas práticas de API Design
Boas práticas de API DesignBoas práticas de API Design
Boas práticas de API Design
 
Realtime com node.js e socket.io
Realtime com node.js e socket.ioRealtime com node.js e socket.io
Realtime com node.js e socket.io
 
Backbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectadosBackbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectados
 
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo BranasNode.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
 
JavaScript Model-View no Frontend
JavaScript Model-View no FrontendJavaScript Model-View no Frontend
JavaScript Model-View no Frontend
 
Minicurso code igniter aula 2
Minicurso code igniter   aula 2Minicurso code igniter   aula 2
Minicurso code igniter aula 2
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
Construindo Sistemas Com Django
Construindo Sistemas Com DjangoConstruindo Sistemas Com Django
Construindo Sistemas Com Django
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScript
 
Aula 8 php (intro, get e post)
Aula 8   php (intro, get e post)Aula 8   php (intro, get e post)
Aula 8 php (intro, get e post)
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Aula 5 java script
Aula 5   java scriptAula 5   java script
Aula 5 java script
 
Conhecendo mundo Node.js
Conhecendo mundo Node.jsConhecendo mundo Node.js
Conhecendo mundo Node.js
 
Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)
 
Precisamos falar sobre MERN stack
Precisamos falar sobre MERN stackPrecisamos falar sobre MERN stack
Precisamos falar sobre MERN stack
 
Mean Stack
Mean StackMean Stack
Mean Stack
 
Desenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi BuilderDesenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi Builder
 
Tornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JSTornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JS
 
JQuery
JQueryJQuery
JQuery
 

En vedette

Mongoose - Melhores práticas usando MongoDB e Node.js
Mongoose - Melhores práticas usando MongoDB e Node.jsMongoose - Melhores práticas usando MongoDB e Node.js
Mongoose - Melhores práticas usando MongoDB e Node.jsSuissa
 
ES6 funcional TDC - Suissa
ES6 funcional TDC - SuissaES6 funcional TDC - Suissa
ES6 funcional TDC - SuissaSuissa
 
MongoDB: Queries and Aggregation Framework with NBA Game Data
MongoDB: Queries and Aggregation Framework with NBA Game DataMongoDB: Queries and Aggregation Framework with NBA Game Data
MongoDB: Queries and Aggregation Framework with NBA Game DataValeri Karpov
 
MongoDB Schema Design: Four Real-World Examples
MongoDB Schema Design: Four Real-World ExamplesMongoDB Schema Design: Four Real-World Examples
MongoDB Schema Design: Four Real-World ExamplesMike Friedman
 

En vedette (6)

Mongoose - Melhores práticas usando MongoDB e Node.js
Mongoose - Melhores práticas usando MongoDB e Node.jsMongoose - Melhores práticas usando MongoDB e Node.js
Mongoose - Melhores práticas usando MongoDB e Node.js
 
ES6 funcional TDC - Suissa
ES6 funcional TDC - SuissaES6 funcional TDC - Suissa
ES6 funcional TDC - Suissa
 
MongoDB: Queries and Aggregation Framework with NBA Game Data
MongoDB: Queries and Aggregation Framework with NBA Game DataMongoDB: Queries and Aggregation Framework with NBA Game Data
MongoDB: Queries and Aggregation Framework with NBA Game Data
 
MongoDB @ Globo.com
MongoDB @ Globo.comMongoDB @ Globo.com
MongoDB @ Globo.com
 
Atomic design
Atomic designAtomic design
Atomic design
 
MongoDB Schema Design: Four Real-World Examples
MongoDB Schema Design: Four Real-World ExamplesMongoDB Schema Design: Four Real-World Examples
MongoDB Schema Design: Four Real-World Examples
 

Similaire à Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS

Introdução ao MongoDB
Introdução ao MongoDBIntrodução ao MongoDB
Introdução ao MongoDBElaine Naomi
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopDiego Sana
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2Flávio Lisboa
 
JS Experience 2017 - Criação de mecanismos de busca usando Node.js + MongoDB
JS Experience 2017 - Criação de mecanismos de busca usando Node.js + MongoDBJS Experience 2017 - Criação de mecanismos de busca usando Node.js + MongoDB
JS Experience 2017 - Criação de mecanismos de busca usando Node.js + MongoDBiMasters
 
Mongodb praquer-usar-uaijugcloudday2014
Mongodb praquer-usar-uaijugcloudday2014Mongodb praquer-usar-uaijugcloudday2014
Mongodb praquer-usar-uaijugcloudday2014Rogerio Fontes
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemRodrigo Valerio
 
NoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEANNoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEANOsmar Petry
 
Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Christiano Anderson
 
MongoDB com Java - SouJava
MongoDB com Java - SouJavaMongoDB com Java - SouJava
MongoDB com Java - SouJavaFernando Boaglio
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Carlos Duarte do Nascimento
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineCampus Party Brasil
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBAri Stopassola Junior
 
Desenvolvimento de WebServices RESTful com NodeJS e MongoDB
Desenvolvimento de WebServices RESTful com NodeJS e MongoDBDesenvolvimento de WebServices RESTful com NodeJS e MongoDB
Desenvolvimento de WebServices RESTful com NodeJS e MongoDBWebSix
 
MongoDB com Java - GUOB 2018
MongoDB com Java  - GUOB  2018MongoDB com Java  - GUOB  2018
MongoDB com Java - GUOB 2018Fernando Boaglio
 
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...Dextra Sistemas / Etec Itu
 
The Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressThe Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressJackson F. de A. Mafra
 

Similaire à Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS (20)

Introdução ao MongoDB
Introdução ao MongoDBIntrodução ao MongoDB
Introdução ao MongoDB
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day Workshop
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
 
PHPMongoDB
PHPMongoDBPHPMongoDB
PHPMongoDB
 
#1 Introdução ao MongoDB
#1   Introdução ao MongoDB#1   Introdução ao MongoDB
#1 Introdução ao MongoDB
 
JS Experience 2017 - Criação de mecanismos de busca usando Node.js + MongoDB
JS Experience 2017 - Criação de mecanismos de busca usando Node.js + MongoDBJS Experience 2017 - Criação de mecanismos de busca usando Node.js + MongoDB
JS Experience 2017 - Criação de mecanismos de busca usando Node.js + MongoDB
 
Mongodb praquer-usar-uaijugcloudday2014
Mongodb praquer-usar-uaijugcloudday2014Mongodb praquer-usar-uaijugcloudday2014
Mongodb praquer-usar-uaijugcloudday2014
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvem
 
NoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEANNoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEAN
 
Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7
 
Mongo + php
Mongo + phpMongo + php
Mongo + php
 
MongoDB com Java - SouJava
MongoDB com Java - SouJavaMongoDB com Java - SouJava
MongoDB com Java - SouJava
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App Engine
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDB
 
Desenvolvimento de WebServices RESTful com NodeJS e MongoDB
Desenvolvimento de WebServices RESTful com NodeJS e MongoDBDesenvolvimento de WebServices RESTful com NodeJS e MongoDB
Desenvolvimento de WebServices RESTful com NodeJS e MongoDB
 
MongoDB com Java - GUOB 2018
MongoDB com Java  - GUOB  2018MongoDB com Java  - GUOB  2018
MongoDB com Java - GUOB 2018
 
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
 
MongoDB + PHP
MongoDB + PHPMongoDB + PHP
MongoDB + PHP
 
The Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressThe Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPress
 

Plus de Romulo Fagundes

Internet das coisas + Guardião Cloud
Internet das coisas + Guardião CloudInternet das coisas + Guardião Cloud
Internet das coisas + Guardião CloudRomulo Fagundes
 
Aplicativos WeboneSystem
Aplicativos WeboneSystemAplicativos WeboneSystem
Aplicativos WeboneSystemRomulo Fagundes
 
Guardião Cloud - Plataforma de IoT
Guardião Cloud - Plataforma de IoTGuardião Cloud - Plataforma de IoT
Guardião Cloud - Plataforma de IoTRomulo Fagundes
 
Protocolos de Sistemas Embarcados
Protocolos de Sistemas EmbarcadosProtocolos de Sistemas Embarcados
Protocolos de Sistemas EmbarcadosRomulo Fagundes
 
Node js - O poder do JavaScript do lado do servidor
Node js  - O poder do JavaScript do lado do servidorNode js  - O poder do JavaScript do lado do servidor
Node js - O poder do JavaScript do lado do servidorRomulo Fagundes
 
Minicurso CONIC - Internet das Coisas
Minicurso CONIC - Internet das CoisasMinicurso CONIC - Internet das Coisas
Minicurso CONIC - Internet das CoisasRomulo Fagundes
 

Plus de Romulo Fagundes (6)

Internet das coisas + Guardião Cloud
Internet das coisas + Guardião CloudInternet das coisas + Guardião Cloud
Internet das coisas + Guardião Cloud
 
Aplicativos WeboneSystem
Aplicativos WeboneSystemAplicativos WeboneSystem
Aplicativos WeboneSystem
 
Guardião Cloud - Plataforma de IoT
Guardião Cloud - Plataforma de IoTGuardião Cloud - Plataforma de IoT
Guardião Cloud - Plataforma de IoT
 
Protocolos de Sistemas Embarcados
Protocolos de Sistemas EmbarcadosProtocolos de Sistemas Embarcados
Protocolos de Sistemas Embarcados
 
Node js - O poder do JavaScript do lado do servidor
Node js  - O poder do JavaScript do lado do servidorNode js  - O poder do JavaScript do lado do servidor
Node js - O poder do JavaScript do lado do servidor
 
Minicurso CONIC - Internet das Coisas
Minicurso CONIC - Internet das CoisasMinicurso CONIC - Internet das Coisas
Minicurso CONIC - Internet das Coisas
 

Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS

  • 1. DESENVOLVENDO COM NODE.JS Prof. Romulo Fagundes Cantanhede @romulofagundes
  • 2. NOSSA META NoSQL - MongoDB Node.JS Express Mongoose Mongoose Generator https://github.com/romulofagundes/app-teste/
  • 3. NOSQL …Not Only SQL… Banco de dados não relacional, aonde os dados não estão diretamente correlacionados, ou seja, com restrição de integridade (fk). Vamos entender o MongoDB, que armazena os dados em forma de documento. Um exemplo prático: Preciso armazenar todas as preferências do meu usuário ‘like' facebook (dinâmico). Como diferenciar filmes, de livros, gostos e afins?
  • 4. MONGODB Fundada em 2007, desenvolvido em C++. Armazena os dados em um formato JSON, com as mesmas propriedades do JSON, com atributos dinâmicos e afins. https://www.mongodb.com/
  • 6. NODE.JS Baseado noV8, motor de renderização de código aberto do Google. Possui a possibilidade de usar JS do lado do servidor, com isso é possível trabalhar com requisições HTTP’s (por exemplo). Um linguagem simples dinâmica, e muito leve! Bem como o próprio JavaScript. https://nodejs.org/
  • 7. ANTES DE CONTINUAR… O que ambos tem em comum? MongoDB e Node.JS?
  • 8. EXPRESS.JS Framework para tratamento de requisição HTTP, que se utiliza do Node.JS. Permite meios de tratar as requisições HTTP e trabalhar de forma simplificada com tais informações. Mantém as mesmas características do Node.JS, simples e leve. E como começar? http://expressjs.com/
  • 9. EXPRESS.JS GENERATOR http://expressjs.com/en/starter/generator.html $ npm install express-generator -g $ express app-teste
 $ cd app-teste && npm install
 $ DEBUG=app-teste:* npm start 1 2 3
  • 10. TECNOLOGIAS DO EXPRESS.JS Algumas tecnologias pertinentes: Pug (Jade) - Utiliza código HTML estilo Like Python. Express - Responsável por tratar as requisições HTTP. Demais complementos - Trabalhar com as requisições de forma correta.
  • 11. MONGOOSE Ok, ok…creio que todos já ouviram falar de Hibernate. Quem não, é uma teoria denominada Mapeamento Objeto Relacional, em resumo: Para cada classe, eu tenho uma tabela. Para cada atributo, eu tenho uma coluna. Para cada registro, eu tenho uma instância. Qual a relação com o Mongoose? …vamos entender… http://mongoosejs.com
  • 12. MONGOOSE - INSTALAÇÃO Para instalar, dentro da pasta do projeto faça a seguinte "receita de bolo”: $ npm install mongoose --save Adicionando conexão ao projeto com Express.js (db/index.js): var mongoose = require('mongoose'); var options = { db: { safe: true }, server: { auto_reconnect: true, socketOptions: { keepAlive: 1 } } }; module.exports = function () { mongoose.connect(‘mongodb://127.0.0.1:27017/teste-app',options).connection; }; var db = require('./db')(); Chame a conexão no “app.js”:
  • 13. MONGOOSE GENERATOR Complemento, utilizado de forma global, para gerar os Schemas (domínios), a cada para request(controller) e serviço. Permite gerar código pronto, de forma simplificada, com base no mongoose. Para instalar: $ npm install -g express-mongoose-generator
  • 14. EXEMPLO DO MONGOOSE GEN. mongoose-gen -m Grupo -f descricao -r mongoose-gen -m Contato -f nome,telefone,dataNascimento:date,preferencias:array,grupo:objectId -r var grupoRoutes = require('./routes/GrupoRoutes.js'); var contatoRoutes = require(‘./routes/ContatoRoutes.js'); … app.use('/grupo', grupoRoutes); app.use('/contato', contatoRoutes); Criado 2 schema’s: Grupo e Contato (!editar contato - rel. Grupo) Adiciona as novas rotas, no app.js:
  • 15. TORNANDO O EXEMPLO MAIS PRÁTICO…VUE.JS
  • 16. VUE.JS Script JS, que facilita a interação do código HTML com o servidor. Permite com isso, converter valores de um FORM para um JSON, e facilita o envio de tais informações…e o que o MongoDB armazena? E o que o Express recebe? https://vuejs.org/
  • 17. VUE.JS OVue.JS é principalmente dividido em 3 partes: data - Dados que serão acessados pelo código HTML, modelos e listas. created - Função que está no ciclo de vida doVue, para inicializar valores. methods - Métodos que serão acessados no código HTML.
  • 20. VUE.JS Update Remove Todas as chamadas(REST) criadas pelo Mongoose Generation!
  • 21. FIM?
  • 22. CRUD CONTATO O arquivo JS basicamente é o mesmo de grupo. Muda principalmente o FORM, e como os campos são mapeados. O que fazer em seguida? Entender a busca, como tratar os valores, e como relacionar os valores entre schema’s. Para o CRUD de contato teve um pouco mais de código…
  • 23. FIM!