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

PDF
Workshop Node.js + MongoDB + Mongoose
PDF
Mecanismo de busca .NET Core + MongoDB
PDF
Android chat app com Node.js
PDF
Introdução ao MongoDB
PPTX
Introdução à Node.js + MongoDB
PPTX
ASP.Net Core FAQ
PPTX
Introdução ao MongoDB II
PPTX
Mecanismo de busca PHP + MongoDB
Workshop Node.js + MongoDB + Mongoose
Mecanismo de busca .NET Core + MongoDB
Android chat app com Node.js
Introdução ao MongoDB
Introdução à Node.js + MongoDB
ASP.Net Core FAQ
Introdução ao MongoDB II
Mecanismo de busca PHP + MongoDB

Mais procurados (20)

PDF
Mecanismo de Busca com Node.js + MongoDB
PDF
Boas práticas de API Design
PDF
Realtime com node.js e socket.io
PDF
Backbone.js + Rails - Front-end e back-end conectados
PDF
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
PDF
JavaScript Model-View no Frontend
PPT
Minicurso code igniter aula 2
PPTX
Introdução básica ao JavaScript
ODP
Construindo Sistemas Com Django
PDF
DOMinando JavaScript
PDF
Aula 8 php (intro, get e post)
PPT
Aula javascript
PDF
Aula 5 java script
PDF
Conhecendo mundo Node.js
PDF
Como Perder Peso (no browser)
PDF
Precisamos falar sobre MERN stack
PDF
Mean Stack
PDF
Desenvolvimento de Módulos Divi Builder
PDF
Tornando as coisas mais simples com Azure Functions e Node.JS
PPTX
Mecanismo de Busca com Node.js + MongoDB
Boas práticas de API Design
Realtime com node.js e socket.io
Backbone.js + Rails - Front-end e back-end conectados
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
JavaScript Model-View no Frontend
Minicurso code igniter aula 2
Introdução básica ao JavaScript
Construindo Sistemas Com Django
DOMinando JavaScript
Aula 8 php (intro, get e post)
Aula javascript
Aula 5 java script
Conhecendo mundo Node.js
Como Perder Peso (no browser)
Precisamos falar sobre MERN stack
Mean Stack
Desenvolvimento de Módulos Divi Builder
Tornando as coisas mais simples com Azure Functions e Node.JS
Anúncio

Destaque (6)

PDF
Mongoose - Melhores práticas usando MongoDB e Node.js
PDF
ES6 funcional TDC - Suissa
PDF
MongoDB: Queries and Aggregation Framework with NBA Game Data
PDF
MongoDB @ Globo.com
PDF
Atomic design
PPTX
MongoDB Schema Design: Four Real-World Examples
Mongoose - Melhores práticas usando MongoDB e Node.js
ES6 funcional TDC - Suissa
MongoDB: Queries and Aggregation Framework with NBA Game Data
MongoDB @ Globo.com
Atomic design
MongoDB Schema Design: Four Real-World Examples
Anúncio

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

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

Mais de Romulo Fagundes (6)

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

Último (19)

PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Aula 18 - Manipulacao De Arquivos python
Processos na gestão de transportes, TM100 Col18
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Apple Pippin Uma breve introdução. - David Glotz
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Custos e liquidação no SAP Transportation Management, TM130 Col18
COBITxITIL-Entenda as diferença em uso governança TI
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Aula04-Academia Heri- Tecnologia Geral 2025
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Gestão de transportes básica no SAP S/4HANA, S4611 Col20

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!