SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Mais procurados

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
Luiz Duarte
 
Boas práticas de API Design
Boas práticas de API DesignBoas práticas de API Design
Boas práticas de API Design
Caio Ribeiro Pereira
 
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
Caio Ribeiro Pereira
 
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
Henrique 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 Branas
Rodrigo Branas
 
JavaScript Model-View no Frontend
JavaScript Model-View no FrontendJavaScript Model-View no Frontend
JavaScript Model-View no Frontend
Henrique Gogó
 
Minicurso code igniter aula 2
Minicurso code igniter   aula 2Minicurso code igniter   aula 2
Minicurso code igniter aula 2
lfernandomcj
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
Carlos Eduardo Kadu
 
Construindo Sistemas Com Django
Construindo Sistemas Com DjangoConstruindo Sistemas Com Django
Construindo Sistemas Com Django
Marinho Brandão
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScript
Thiago 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 javascript
Aula  javascriptAula  javascript
Aula javascript
Gabriel Moura
 
Aula 5 java script
Aula 5   java scriptAula 5   java script
Aula 5 java script
andreluizlc
 
Conhecendo mundo Node.js
Conhecendo mundo Node.jsConhecendo mundo Node.js
Conhecendo mundo Node.js
Caio Ribeiro Pereira
 
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 stack
Sidney Roberto
 
Mean Stack
Mean StackMean Stack
Mean Stack
Bruno Catão
 
Desenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi BuilderDesenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi Builder
Daniel 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.JS
Matheus Donizete
 
JQuery
JQueryJQuery

Mais procurados (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
 

Destaque

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
Suissa
 
ES6 funcional TDC - Suissa
ES6 funcional TDC - SuissaES6 funcional TDC - Suissa
ES6 funcional TDC - Suissa
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
Valeri Karpov
 
MongoDB @ Globo.com
MongoDB @ Globo.comMongoDB @ Globo.com
MongoDB @ Globo.com
Franklin Amorim
 
Atomic design
Atomic designAtomic design
Atomic design
Brad Frost
 
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
Mike Friedman
 

Destaque (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
 

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

Introdução ao MongoDB
Introdução ao MongoDBIntrodução ao MongoDB
Introdução ao MongoDB
Elaine Naomi
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day Workshop
Diego Sana
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
Flávio Lisboa
 
PHPMongoDB
PHPMongoDBPHPMongoDB
PHPMongoDB
Michel Felipe
 
#1 Introdução ao MongoDB
#1   Introdução ao MongoDB#1   Introdução ao MongoDB
#1 Introdução ao MongoDB
Gabriel Alves Scavassa
 
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
iMasters
 
Mongodb praquer-usar-uaijugcloudday2014
Mongodb praquer-usar-uaijugcloudday2014Mongodb praquer-usar-uaijugcloudday2014
Mongodb praquer-usar-uaijugcloudday2014
Rogerio 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 nuvem
Rodrigo Valerio
 
NoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEANNoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEAN
Osmar Petry
 
Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7
Christiano Anderson
 
Mongo + php
Mongo + phpMongo + php
MongoDB com Java - SouJava
MongoDB com Java - SouJavaMongoDB com Java - SouJava
MongoDB com Java - SouJava
Fernando Boaglio
 
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
Campus Party Brasil
 
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 PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDB
Ari 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 MongoDB
WebSix
 
MongoDB com Java - GUOB 2018
MongoDB com Java  - GUOB  2018MongoDB com Java  - GUOB  2018
MongoDB com Java - GUOB 2018
Fernando 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
 
MongoDB + PHP
MongoDB + PHPMongoDB + PHP
MongoDB + PHP
Ari Stopassola Junior
 
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
Jackson F. de A. Mafra
 

Semelhante a 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
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 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 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
 

Mais 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 Cloud
Romulo Fagundes
 
Aplicativos WeboneSystem
Aplicativos WeboneSystemAplicativos WeboneSystem
Aplicativos WeboneSystem
Romulo Fagundes
 
Guardião Cloud - Plataforma de IoT
Guardião Cloud - Plataforma de IoTGuardião Cloud - Plataforma de IoT
Guardião Cloud - Plataforma de IoT
Romulo Fagundes
 
Protocolos de Sistemas Embarcados
Protocolos de Sistemas EmbarcadosProtocolos de Sistemas Embarcados
Protocolos de Sistemas Embarcados
Romulo 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 servidor
Romulo Fagundes
 
Minicurso CONIC - Internet das Coisas
Minicurso CONIC - Internet das CoisasMinicurso CONIC - Internet das Coisas
Minicurso CONIC - Internet das Coisas
Romulo Fagundes
 

Mais 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
 

Último

TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 

Último (7)

TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 

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!