Documente Academic
Documente Profesional
Documente Cultură
js
Apresentao
Por que Node.js?
Ambiente
Hello World!
Cronograma
CRUD
Referncias
Dvidas
Cincia da Computao
Computao Mvel
Dev, analista, gerente...
11 anos programando
- 10 com Java e C#
- alguns meses com Node.js ...
Por que Node.js???
Vantagens:
multiplataforma, veloz, escala, velocidade e baixo custo, web
full-stack, assncrono, V8 Engine, Javascript
Cenrios de Usos:
APIs, bots, mensageria, real-time, games, collaboration tools
Quem usa?
Netflix, PayPal, LinkedIn, Groupon, Dow Jones, GoDaddy, 4all, etc
Tecnologias Concorrentes:
Por que Node.js? Go, Elixir e Scala
Ambiente
Onde baixo?
http://nodejs.org
Arquivos importantes:
Explicando... bin/www, app.js e packages.json
Objetos importantes:
app, http, server
Instalando dependncia do EJS:
C:\nodejs\helloworld> npm i -S ejs
Nova view:
Novo teste views/cadastro.ejs
CRUD
(Create, Read, Update, Delete)
ORM:
Mongoose
Configurao:
Configurando C:\nodejs\helloworld> npm i -S mongoose
C:\nodejs\helloworl> nano db.js
db.js:
var mongoose = require("mongoose");
mongoose.connect("mongodb://localhost:27017/helloworld");
var db = require("../db");
var nome = req.body.txtNome;
Create var idade = req.body.txtIdade;
var db = require("../db");
var customers = db.Mongoose.model('customers',
Read db.CustomerSchema, 'customers');
customers.find({}).lean().exec(
function (e, docs) {
res.render('index', { "title": "Express", "customers": docs });
});
views/index.ejs:
<ul>
<% customers.forEach(function(customer){ %>
Read <li><%= customer.nome %> tem <%= customer.idade %>
anos</li>
<% }); %>
</ul>
views/index.ejs:
<ul>
<% customers.forEach(function(customer){ %>
Update <li><a href="/cadastro/<%= customer._id%>"><%=
customer.nome %> tem <%= customer.idade %> anos</a></li>
<% }); %>
</ul>
routes/cadastro.js (GET):
if(req.params.id){
var db = require('../db');
Update var customers = db.Mongoose.model('customers',
db.CustomerSchema, 'customers');
customers.find({ _id: req.params.id }).lean().exec(function (e,
docs) {
res.render('cadastro', { title: 'Express', customer: docs[0] });
});
}
routes/cadastro.js (GET):
else {
res.render('cadastro', { title: 'Express', customer: {nome:"",
Update idade:"", _id:""} });
}
views/cadastro.ejs:
var db = require("../db");
var nome = req.body.txtNome;
Update var idade = req.body.txtIdade;
else {
Customer.findOneAndUpdate({ _id: req.body.id },
Update { nome: nome, idade: idade },
{ upsert: false },
function (err, doc) {
if (err) {
console.log("Error! " + err.message);
return err;
}
console.log("Post saved");
res.redirect("/");
});
}
views/cadastro.ejs: