O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Node js - Javascript Server Side

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
Introdução ao NodeJS
Introdução ao NodeJS
Carregando em…3
×

Confira estes a seguir

1 de 15 Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a Node js - Javascript Server Side (20)

Anúncio

Mais recentes (20)

Node js - Javascript Server Side

  1. 1. Javascript Server Side
  2. 2. SUMÁRIO • O que é NodeJS? • Single-thread • Event-loop • Instalação e Configuração • O Básico com NodeJS • Iniciando um Projeto • package.json • Servidor HTTP • Assíncrono x Síncrono • Módulo • Express - use um framework • Criando uma API para Registro de Log • RESTful • MongoDB • Node em Produção
  3. 3. NODEJSO que é NodeJS? - Arquitetura non-blocking thread e event-driven.Aproveita melhor os recursos de memória e processamento do servidor; - Altamente escalável e de baixo nível. Permite usar protocolos de rede e bibliotecas para acessar recursos do OS; - A linguagem de programação é o Javascript. Permite trabalhar no client e server side com a mesma linguagem; - Engine V8 desenvolvida pela Google, mesma utilizada no Google Chrome. Escrita em C++ e ultra rápida. ! O NodeJS não é? Não é um servidor web tradicional como:Apache eTomcat. ! ! Aconselhável Não aconselhável - API RESTful - Aplicação RealTime (Ex.: Chat, Gráficos, outros) - Filas Enormes (Ex. que poderia ser usado: tweets) - Streaming de dados - Coleta de Dados Estatísticos ! Em resumo o NodeJS é muito utilizado em Arquitetura Orientada a Serviço (SOA em inglês). ! Projetos em Node https://github.com/joyent/node/wiki/ Projects,-Applications,-and-Companies-Using-Node - Sites - CMS - HTML Apps - CRUD simples - Aplicações pesadas de Banco de Dados Relacional - Aplicação pesadas para o CPU (Ex.: Manipulação de vídeos; Business Inteligence; ERP; ) ! O NodeJS geralmente não é recomendado para aplicações tradicionais.
  4. 4. NODEJS Single-thread O NodeJS trabalha com single- thread, ou seja, a aplicação terá instância de um processo. Mas é possível criar um sistema concorrente usando clusters que é um módulo nativo do Node.
  5. 5. NODEJS Event-loop O NodeJS é orientado a eventos. Ele trabalha com eventos de I/O do servidor, como por exemplo, os eventos connect de um bd, open de um arquivo, data de um streaming, e outros. O event-loop é um agente que executa um loop infinito que fica escutando e emitindo eventos.
  6. 6. INSTALAÇÃO E CONFIGURAÇÃO Windows Faça o download no site http://nodejs.org/download/ e realize a instalação. Após ter instalado verifique se ocorreu tudo bem.Abra o cmd e execute: node -v npm -v ! Ubuntu 1 - Instale as bibliotecas que precisaremos sudo apt-get install g++ curl libssl-dev apache2-utils sudo apt-get install git-core 2 - Obtenha o NodeJS git clone git://github.com/ry/node.git cd node 3 - Instale o NodeJS ./configure make sudo make install 4 -Verifique se a instalação ocorreu bem node -v npm -v
  7. 7. O BÁSICO Iniciando um Projeto ! mkdir helloworld && cd helloworld npm init ! package.json Após a inicialização do projeto será gerado um arquivo chamado package.json. Esse é o arquivo usado pelo node para armazenar algumas informações e as dependências do projeto. ! { "name": "helloworld", "version": "1.0.0", "description": “Arquivo para iniciar o projeto.”, "main": "index.js", "scripts": { "test": "echo "Error: no test specified" && exit 1" }, "author": “Gustavo Correa", "license": "MIT" } ! Criaremos o arquivo helloworld.js para o nosso projeto Olá Mundo! com o conteúdo. ! console.log(“Olá mundo!”); ! E rode o comando node helloworld para executar o projeto. !
  8. 8. O BÁSICO Servidor HTTP Com node podemos trabalhar com inúmeros protocolos tais como: HTTP, HTTPS, FTP, SSH, DNS,TCP, UDP, WebSockets e alguns outros disponíveis em módulos não oficiais. ! O protocolo HTTP é um dos mais utilizados para desenvolvimento de sistemas web e node prover um módulo nativo. ! var html = require("html"); ! html.createServer(funciton(req, res){ res.createHeader(200, {"Content-type" : "text/plain"}); res.write("Resposta HTTP!"); res.end(); }).listen(3000); ! ! !
  9. 9. O BÁSICO Assíncrono x Síncrono A programação assíncrona permite tirar vantagem da arquitetura não bloqueante do Node.js. Programando de forma assíncrona as operações do programa ocorrem em paralelo acelerando os eventos de entrada e saída. Essa técnica utiliza funções callbacks do Javascript, e mantém apenas uma thread diferente como o que ocorre com o Java, por exemplo. Porém, é importante ressaltar que você não tem nenhum controle sobre a ordem de execução das operações assíncronas. ! O Node.js também permite trabalhar de forma síncrona, mas não é aconselhável. Essa forma de programar não beneficiar a arquitetura do Node e tende a bloqueia a aplicação até a finalização da operação. ! Síncrono Assíncrono ! ! !
  10. 10. O BÁSICO Módulos Um módulo é qualquer coisa que pode ser carregado com require() em um programa de Node.js. ! Ex.: ! // arquivo math.js var math = { sum : function(x, y){ return x + y; }, sub : function(x, y){ return x - y; }, mult : function(x, y){ return x * y; }, div : function(x, y){ return x / y; } } module.exports = math; ! ! // arquivo calculator.js var calc = require("./math"); console.log("2 + 2 = " + calc.sum(2, 2)); console.log("8 - 4 = " + calc.sub(8, 4)); console.log("4 * 1 = " + calc.mult(2, 2)); console.log("8 / 2 = " + calc.div(8, 2));
  11. 11. EXPRESS HTTP://EXPRESSJS.COM/ Introdução Express é um framework muito utilizado para quem desenvolve com NodeJS. Ele é minimalista, flexível e contém um robusto conjunto de recursos para desenvolver aplicações web, como: MVR(Model-View-Routes), MVC(Model-View-Controller), Roteamento de urls via callbacks, Middleware, Interface RESTful, Suporte a File Upload,Template Engine e muito mais. O Express tem um escopo mais simples que frameworks como Rails, Django e CakePHP, ele foi baseado no Sinatra. ! Instalação sudo npm install -g express-generator Uso express --css less --ejs newapp cd newapp && npm install npm start Acesso Acesse a url http://localhost:3000 no navegador.
  12. 12. API RESTful para Geração de Logs
  13. 13. MONGODB Introdução O Nodejs possui inúmeros módulos para banco de dados, tanto relacional quando não relacional. Com banco de dados NoSQL conseguimos tirar um bom proveito da arquitetura do Nodejs criando aplicações realmente escaláveis. ! Instalação Utilizaremos o MongoDB para persistir os logs de nossa API, para tal instalaremos o módulo mongoose. npm install mongoose --save Obs.: Para instalação do MongoDB propriamente dito aconselho seguir o guia do site do MongoDB http:// docs.mongodb.org/manual/installation/ . !
  14. 14. NODEJS EM PRODUÇÃO Serviços para NodeJS • Heroku • NodeJitsu • DigitalOcean • Getup (Brasileira) ! Servidor • Amazon EC2 / Servidor particular forever - https://github.com/nodejitsu/forever ! ! ! ! sudo npm install forever -g forever -m 5 project/to/your/main.js cd /path/to/your/project npm install forever-monitor ! //main.js var forever = require(“forever-monitor”); var Monitor = forever.Monitor; ! var child = new Monitor(“index.js”, { max : 10, silent : true, kill : true, logFile : “forever.log”, outFile : “app.log”, errFile : “error.log" });
  15. 15. OBRIGADO! Palestrante Gustavo Corrêa Alves http://www.gustavocalves.com.br https://github.com/gcajpa http://br.linkedin.com/in/gustavocorreaalves/ ! !

×