Академический Документы
Профессиональный Документы
Культура Документы
MEAN Stack
MongoDB
Express
AngularJS
NodeJS
Verso 06/03/2016
1
Indice
1 Ferramentas Bsicas
HTML, CSS, JavaScript 3
Editor Atom e Packages 3
2 Conjunto MEAN
InstalandoMongoDB 4
Instalando Node.js 5
Trabalhando com Node.js 6
Introduo ao NPM 7
Introduo ao Express 8-9
Trabalhando com MongoDB 10-13
Introduo ao Mongoose 14-16
Introduo ao Sequelize 17
3 Bibliografia 18
2
Ferramentas Bsicas
Editor Atom
Instalao
Arquivo 14 AtomSetup - Executar como Administrador
Localizao do Atom:
C:\Users\nome\AppData\Local\atom\app-1.3.2\atom.exe
Criar um atalho
Package Emmet
a) SelecionarPackages/Settings View/Install Packages
b) Informar emmet e clicar Packages
c) Em Emmet, clicar Install e esperar
3
Conjunto MEAN
InstalandoMongoDB
4
Conjunto MEAN
InstalandoNode.js
Projeto Node
Package.json o arquivo que configura cada aplicativo.
Exemplo Bsico de Package.json:
{
"name": "http-server",
"main": "server.js",
"dependencies":
{
"express": "~4.13.3"
}
}
Inicializando App
Criar uma pasta para o projeto:
c:\projetos\mean\node\app
Na tela de comando:
cd c:\projetos\mean\node\app
Em c:\projetos\mean\node\app
npm init
Este comando cria o projeto com o arquivo package.json
Assim criamos um aplicativo com nome app
5
Conjunto MEAN
Trabalhando comNode.js
Observao:
Com nodemon ativado a aplicao restartada
automaticamente
quando efetuamos alguma alterao no projeto.
6
Conjunto MEAN
Node.js
Introduo ao NPM
NPM o nome reduzido de Node Package Manager (Gerenciador de Pacotes do Node).
A NPM duas coisas: Primeiro, e mais importante, um repositrio online para
publicao de projetos de cdigo aberto para o Node.js; Segundo, ele um utilitrio de
linha de comando que interage com este repositrio online, que ajuda na instalao de
pacotes, gerenciamento de verso e gerenciamento de dependncias.
7
Conjunto MEAN
Introduo ao Express
Projeto
Na tela de comando:
cd c:\projetos\mean\express\proj1
npm init
Este comando cria o projeto com o arquivo package.json.
Informar nome do projeto: proj1
Dar ENTER para todas as outras opes solicitadas.
Criamos assim um aplicativo com nome proj1
Empackage.json alterar main para server.js
No final acrescentar
"dependencies"
{
"name": "proj1",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts":
{
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies":
{
"express": "latest"
}
}
8
Conjunto MEAN
Express
Projeto
9
Conjunto MEAN
Relacional:
Posts table
Id
Name
Comments table
Id
PostId
Comment
NoSql: {
"title: First Blog Post",
"comments": []
}
Exemplo de cdigo:
{
"_id": ObjectId("52d02240e4b01d67d71ad577"),
"title": "First Blog Post",
"comments": [...]
}
O formato BSON permite indexar para maior eficincia nas pesquisas do MongoDB.
10
Conjunto MEAN
MongoDB
shell
Operaes CRUD
Create, Read, Update e Delete so as operaes bsicas que podemos fazer.
11
Conjunto MEAN
MongoDB
shell
Selecionando documentos
>db.posts.find({ user: alice })
>db.posts.find({ user: { $in: [alice, bob] } })
>db.posts.find({ $or: [{ user: alice }, {user: bob}] })
>db.posts.find({ user: alice, commentsCount: { $gt: 10 } })
12
Conjunto MEAN
MongoDB
shell
13
Conjunto MEAN
Introduo ao Mongoose
Em config/env/development.js especificar:
module.exports = {
db: 'mongodb://localhost/workflow',
sessionSecret: 'developmentsessionSecret'
};
varconfig = require('./config'),
mongoose = require('mongoose');
module.exports = function() {
vardb = mongoose.connect(config.db);
returndb;
};
Na tela de comando:
cd c:/projetos/mean/workflow
node server
Obs.:
Se der erro de conexo, verficar se o servio MongoDB est em execuo.
14
Conjunto MEAN
Mongoose
Schemas
Fazer a conexo com a instncia do MongoDB apenas o primeiro passo.
Precisamos ainda criar o schema.
Na pasta app/models criar um arquivo com o nome user.server.model.js
Com o seguinte contedo:
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
varUserSchema = new Schema({
firstName: String,
lastName : String,
email : String,
username : String,
password : String
});
mongoose.model('User', UserSchema);
15
Conjunto MEAN
Mongoose
Schemas
Para testar o users.server.controller.js vamos acrescentar rotas (routes)
que iro chamar os mtodos do controller.
Ento, na pasta app.routes vamos criar o arquivo users.server.routes
com o seguinte contedo:
module.exports = function(app) {
app.route('/users').post(users.create);
};
Obs.:
Tendo em vista que aplicativos Express estaro disponveis como
RESTful API para o AngularJS, mais adequado construir nossas
rotas de acordo com os princpios REST. No cdigo acima, post.
Vamos agora acrescentar em config/express.js o seguinte cdigo:
require('../app/routes/users.server.routes.js') (app);
Para testar:
node server
16
Conjunto MEAN
Introduo ao Sequelize
http://docs.sequelizejs.com/en/1.7.0/
The Sequelize library provides easy access to MySQL, MariaDB, SQLite or PostgreSQL
databases by mapping database entries to objects and vice versa. To put it in a nutshell, it's an
ORM (Object-Relational-Mapper). The library is written entirely in JavaScript and can be used in
the Node.JS environment.
Easyinstallation
$ npm install sequelize
$ npm install mysql
Simpleusage
varSequelize=require('sequelize')
,sequelize=newSequelize('database','username','password')
varUser=sequelize.define('User',{
username:Sequelize.STRING,
birthday:Sequelize.DATE
})
sequelize.sync().success(function(){
User.create({
username:'sdepold',
birthday:newDate(1986,06,28)
}).success(function(sdepold){
console.log(sdepold.values)
})
})
http://docs.sequelizejs.com/en/1.7.0/docs/installation/
You have two options to install Sequelize:
1. Install it via NPM (on the commandline):
npm install sequelize
2. Download the code from the git repository and require it's entry file index.js:
# Checkout the current code from the repository using the commandline
cd path/to/lib
git clone git://github.com/sequelize/sequelize.git
17
Bibliografia
18