Node.js. Download

Documentos relacionados
Ricardo R. Lecheta. Novatec

Node.js ARQSI 2017/2018

Informática Parte 25 Prof. Márcio Hunecke

EA975 - Laboratório de Engenharia de Software

Conteúdo Programático JavaScript Web Developer

EA975 - Laboratório de Engenharia de Software. Objetivo do curso. Turmas K/L Aula 1

Programação para Internet

ASP.NET Web Services. José Antônio da Cunha IFRN

Conteúdo Programático JavaScript Web Developer

DESENVOLVIMENTO DE UM APLICATIVO MULTIPLATAFORMA PARA AGENDAMENTO DE TAREFAS

CONCEITOS BÁSICOS SOBRE NODE.JS

>>> RESTful API >>> Com Node.js e Restify. Name: Anderson Pimentel Date: 19 de Março de

Aplicação Web Zend Framework 2 Cliente de Aplicação Asp.Net Web API

AJAX. Prof. Marcos Alexandruk

Configuração do Apache Cordova Lab. 13. Prof. Bruno C. Vani

Classe PHP Client. A classe Zend\Http\Client fornece uma interface para realizar pedidos HTTP.

Capítulo 7. A camada de aplicação

Como criar sua aplicação em React em poucos minutos. um ebook produzido por: CodePrestige

Ajax Asynchronous JavaScript and Xml

Compreender as diferenças entre os vários métodos e códigos de erro HTTP. Conhecer as linguagens fundamentais para programação para a Web

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON)

Programação para Internet

AJAX. Aula 01 - Introdução

Redes de Computadores I. Sockets e Arquitetura HTTP

Funções em JavaScript

Shelley Powers. Novatec

JAVASCRIPT Laboratórios de Informática João Paulo Barraca, André Zúquete, Diogo Gomes

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web:

Introdução à Informática

Redes de Computadores

Desenvolvendo Aplicações RESTFul utilizando Node.js

Desenvolvimento Web II

DISTRIBUINDO SUA APLICAÇÃO

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

Coletando dados utilizando a API do Zabbix com PHP e JSON

Protocolo HTTP. - Características. - Modelo Requisição/Resposta. - Common Gateway Interface (CGI)

MANUAL DE INTEGRAÇÃO API DE PAGAMENTOS PRIXPAY v.003

AJAX (Asynchronous Javascript And XML)

Modelo para a representação de informações, utilizado por aplicações Web que trabalham com a tecnologia AJAX.

4.0 SP2 ( ) maio P Xerox FreeFlow Core Express Guia de Instalação

REST RESTfulWeb Services JAX-RS

Instituto Federal do Sertão-PE. Curso de PHP. Professor: Felipe Correia

ERP PRIMAVERA STARTER V9.15

Por Fernando Koyanagi

Informática Parte 23 Prof. Márcio Hunecke

Manual de Integração do icarta

Integração por Web Services

Programação para Internet

Nota prévia... XXI 1. PHP, Apache Server e MySQL... 1

3 2. A PLATAFORMA NODE.JS

GUIA DE INTEGRAÇÃO DO CHECKOUT LIGHTBOX 1. Guia de Integração do Checkout Lightbox VERSÃO 1.1.1

Uso da plataforma Ionic para Desenvolvimento de Aplicativo Móvel

Orientação a Objetos - Programação em C++

AngularJS. Uma abordagem prática e objetiva. Michael Henrique R. Pereira. Novatec

Programação Na Web. Servlets: Como usar as Servlets. Agenda. Template genérico para criar Servlets Servlet 2.4 API

(Visualizar versões remotas do NodeJs) $ nvm ls-remote Obs.: várias versões escolher/copiar a última versão LTS para instalação

Sage API Application Programming Interface.

Java: Linguagem de programação (OOP) JavaScipt: Linguagem de scripts (OOP)

DISTRIBUINDO SUA APLICAÇÃO

Node.js: JavaScript com Google V8 no servidor

Publicar uma aplicação ASP.NET Core com base de dados SqlServer no Azure usando Visual Studio e um perfil para publicação (publish profile)

Prof. Romulo Fagundes Cantanhede. Node.JS. O poder do JavaScript do lado do Servidor

Redes de Computadores I

Introdução à linguagem JavaScript

1 INTRODUÇÃO CERTIFICADO DE SEGURANÇA SSL AUTENTICAÇÃO WEB METHOD: LOGIN WEB METHOD: LISTBONDCODES...

Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES

Java II. Sérgio Luiz Ruivace Cerqueira

Ajax Asynchronous JavaScript and Xml

Júlio César Falbo da Silveira

Table of Contents

Como funciona a plataforma Superlógica? - Livro 4 de 4. Como funciona a interface de integração? Como você poderá complementar o sistema?

Num sistema de objectos distribuídos, dois conceitos são fundamentais.

Transcrição:

Node.js Download http://nodejs.org/en > node v v8.7.0 > npm v 5.4.2 Node.js é um ambiente de desenvolvimento (paltaforma) do lado do servidor, de código aberto, multi-plataforma, que corre JavaScript. Visual Studio Code version 1.17

w3schools JavaScipt Tutorial JavaScript Objects JavaScript Functions https://www.w3schools.com/js/default.asp w3schools Node.js Tutorial - Node.js MongoDB https://www.w3schools.com/nodejs/default.asp tutorialspoint Node.js Tutorial (PDF Version 140 páginas: Web Module [99-103], Express Framework [104-125], RESTfull API [126-132]) https://www.tutorialspoint.com/nodejs/ Ultra fast applications using Node.js https://openclassrooms.com/courses/ultra-fast-applications-using-node-js/installing-node-js Node.js Tutorial in VS Code https://code.visualstudio.com/docs/nodejs/nodejs-tutorial Build a RESTful API Using Node and Express 4 https://scotch.io/tutorials/build-a-restful-api-using-node-and-express-4 Easy Node Authentication: Setup and Local https://scotch.io/tutorials/easy-node-authentication-setup-and-local

Funcionamento assíncrono (código não bloqueante) Uma função callback é chamada quando uma dada tarefa termina Exemplo de código bloqueante: Ficheiro mainsync.js: var fs = require("fs"); var data = fs.readfilesync('input.txt'); console.log(data.tostring()); console.log("program Ended"); Node.js> node mainsync Tutorials Point Program Ended Ficheiro input.txt: Tutorials Point Exemplo de código não bloqueante: Ficheiro mainasync.js: var fs = require("fs"); fs.readfile('input.txt', function (err, data) { if (err) return console.error(err); console.log(data.tostring()); }); console.log("program Ended"); Node.js> node mainasync Program Ended Tutorials Point

Funcionamento assíncrono (código não bloqueante) var fs = require("fs"); fs.readfile('input.txt, function (err, data) { if (err) return console.error(err); console.log(data.tostring()); } ); console.log("program Ended"); Código equivalente: var fs = require("fs"); var callback = function (err, data) { if (err) return console.error(err); console.log(data.tostring()); } fs.readfile('input.txt, callback); console.log("program Ended"); A função function(err, data) é uma função anónima e enviada como último argumento da função readfile(). A função readfile() é uma função assíncrona, inicia a leitura e retorna. Em seguida o programa executa a instrução console.log( Program Ended ). A função readfile() emite um evento fim de leitura quanto termina a leitura. A função callback function(err, data) só é invocada quando ocorre o evento fim de leitura. Deste modo o programa não executa as tarefas na ordem em que estão escritas.

Padrão observer Node.js é uma aplicação com um único thread, mas suporta concorrência através do conceito de eventos e callbacks. Para manter a concorrência Node.js usa funções assíncronas e o padrão observer. A thread Node mantém um ciclo de eventos e sempre que uma tarefa termina, dispara o evento correspondente que sinaliza a execução da função listener do evento.

Ficheiro evento.js var eventos = require('events'); var eventemitter = new eventos.eventemitter(); var listener1 = function() { console.log('execução da função listener.'); } eventemitter.on('evento1', listener1); eventemitter.emit('evento1'); console.log("fim do Programa."); // Importa o módulo events // Cria um objeto eventemitter // Cria um listener // Liga evento1 com o listener // Dispara o evento evento1 // Output: > node evento Execução da função listener. Fim do Programa.

Tratamento de eventos 1- Criar uma função callback com o código a ser executado quando ocorrer o evento (criar o listener) var listener1 = function() { console.log('execução da função listener 1. ); } 2- Registar a função callback no emissor do evento para um dado evento (adicionar um listener no fim do array de listeners para o evento específico) on(event, listener1) ou addlistener(event, listner1) 3- Quando o emissor emite o evento a função callback é executada eventemitter.emit('evento1');

Numa aplicação Node: Qualquer função assíncrona aceita uma função callback como último parâmetro Uma função callback aceita um objeto error como primeiro parâmetro var fs = require("fs"); fs.readfile('input.txt, function (err, data) { if (err) return console.error(err); console.log(data.tostring()); } ); console.log("program Ended"); fs.readfile() é uma função assíncrona que lê o conteúdo de um ficheiro. Se durante a leitura ocorrer um erro, a leitura termina e um objeto erro é passado à função callback. Se durante a leitura não ocorre erro, quando a operação de leitura termina um objeto data contendo o conteúdo da leitura é passado à função callback

Uma aplicação servidora Node.js corre num único thread. Embora só possa realizar uma tarefa de cada vez, Node.js é muito eficiente a tratar muitos pedidos simultaneamente, devido à sua natureza orientada a eventos. Se no processamento de um pedido inicia a realização de uma operação mais demorada, o programa retorna e passa para o próximo pedido. Quando a operação mais demorada termina, lança um evento e Node.js continua a processar esse pedido.

Ficheiro server.js: var http = require('http'); http.createserver(function (req, res) { res.writehead(200, {'Content-Type': 'text/plain'}); res.end('hello World!'); }).listen(8080); O módulo http é carregado e retorna um objeto JavaScript (http), que permite executar as funcionalidades disponíveis no módulo. A função createserver() executa um programa servidor que escuta no porto 8080. A função callback anónima function(req, res) é invocada sempre que um pedido é recebido pelo servidor. Contém 2 parâmetros: O primeiro, req, é um objeto que contém toda a informação do pedido, O segundo, res, é um objeto que devemos preencher com a resposta a enviar.

Ficheiro server.js: var http = require('http'); var url = require('url'); var fs = require('fs'); http.createserver(function (req, res) { var q = url.parse(req.url, true); var filename = "." + q.pathname; fs.readfile(filename, function(err, data) { if (err) { res.writehead(404, {'Content-Type': 'text/html'}); return res.end("404 Not Found"); } res.writehead(200, {'Content-Type': 'text/html'}); res.write(data); return res.end(); }); }).listen(8080); Ficheiro verao.html: <!DOCTYPE html> <html> <body> <h2>verão</h2> </body> </html> Ficheiro inverno.html: <!DOCTYPE html> <html> <body> <h2>inverno</h2> </body> </html>

Ficheiro server.js: var http = require('http'); var url = require('url'); var querystring = require('querystring'); http.createserver(function (req, res) { var q = url.parse(req.url, true); console.log("href=" + q.href); console.log("pathname=" + q.pathname); console.log("search=" + q.search); var querystringobject = q.query; for (param in querystringobject) { console.log("param["+param+"]=" + querystringobject[param]); } res.writehead(200, {'Content-Type': 'text/plain'}); res.write(q.href); return res.end(); }).listen(8080);

Express Express é um framework Node.js para aplicações web Node.js > npm install express save // Node.js > express --version => 4.15.5 Node.js > npm install body-parser save // midleware para tratar JSON e dados Node.js > npm install cookie-parser save // para tratar cookies Node.js > npm install multer --save // midleware para multipart/form-data Por omissão instala no diretório corrente (locally) em./node_modules Para poder usar no próprio programa com require( modulo1 ) devemos instalar na raiz do projeto (locally) Com o parâmetro g instala globalmente (globally) em /AppData/Roaming/npm