SlideShare uma empresa Scribd logo
Node.js
Sistemas de Informação
Tópicos Avançados de Programação
2019.1
Bruno Catão
Criando um novo projeto
cd c:PastaOndeFicamSeusProjetos
md projetoAula2
cd projetoAula2
npm init
Criando um novo projeto
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible
defaults.
See `npm help json` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
Criando um novo projeto
package name: (aula2)
version: (1.0.0)
description: Projeto para a aula 2 de TAP
entry point: (index.js)
test command:
git repository:
keywords:
author: Bruno Catao
license: (ISC)
About to write to C:Usersbrunodevtap2019.1aula2package.json:
...
Is this OK? (yes)
Estrutura do projeto
Hello World
Executando
node index.js
Hello World
X
XXX
XXXXX
XXXXXXX
XXXXXXXXX
XXXXXXXXXXX
XXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
X
X
X
X
JSON + Programação Funcional
Executando
node index.js
TODOS OS PRODUTOS:
0. Coxinha R$ 4.00
1. Pastel R$ 3.00
2. Suco R$ 2.00
PRODUTOS DE MENOS DE R$ 3,00:
0. Pastel R$ 3.00
1. Suco R$ 2.00
AUMENTO DE 20% EM TODOS OS PRODUTOS:
0. Coxinha R$ 4.80
1. Pastel R$ 3.60
2. Suco R$ 2.40
Argumentos de linha de comando
Executando
node index.js arg1 arg2=valor arg4
0: C:Program Filesnodejsnode.exe
1: C:Usersbrunodevtap2019.1aula2index.js
2: arg1
3: arg2=valor
4: arg4
Objeto Process (https://nodejs.org/api/process.html)
• Eventos:
• beforeExit – Executar uma função antes de encerrar a execução
• Funções:
• abort() – Força a interrupção da execução imediatamente
• exit(valor) – Envia um sinal para o SO interromper o processo
• chdir() – Muda o diretório atual
• Atributos:
• arch – Exibe atributos da arquitetura de hardware
• argv – Objeto com os argumentos da linha de comando
• env – Objeto com as variáveis de ambiente
Listando arquivos de uma pasta
Executando
node index.js
Uso: node index.js CAMINHO_PARA_PASTA
node index.js .
index.js
package.json
Versão recursiva – percorre subpastas
Executando
node index.js C:Usersbrunodevtap2019.1
aula1:
mean_framework.ppt
aula2:
index.js
package.json
Lendo um arquivo – Funções assíncronas
Executando
node index.js README
Este é um arquivo de exemplo.
Ele contém várias linhas.
Para testar a leitura e gravação de arquivos.
Gravando um arquivo – Funções assíncronas
Executando
node index.js saida.txt
Dados gravados com sucesso.
type saida.txt
Dados que vão ser gravados
Exemplo Prático – Gravando objetos
Executando
node index.js
Dados gravados com sucesso.
type dados_produtos.json
[{"nome":"Coxinha","valor":4},{"nome":"Pastel","valor":3.5},{"nome":"S
uco","valor":2}]
Exemplo Prático – Lendo objetos
Executando
node index.js
0 - Coxinha - R$ 4.00
1 - Pastel - R$ 3.50
2 - Suco - R$ 2.00
Exemplo Prático #2 – Compactando arquivos
npm install archiver –save
npm notice created a lockfile as package-lock.json. You should commit
this file.
npm WARN aula2@1.0.0 No repository field.
+ archiver@3.0.0
added 51 packages from 28 contributors and audited 180 packages in
15.112s
found 0 vulnerabilities
• Vamos instalar um pacote no nosso projeto
• Para isso, utilizamos o comando “npm install <NOME_DO_PACOTE>”
• O argumento “—save” salva o pacote no arquivo package.json
Onde os pacotes são instalados ?
• Pacotes locais:
• Pasta node_modules do seu projeto
• Pacotes globais (npm install –g <PACOTE>):
• Pasta C:UsersUSUARIOAppDataRoamingnpmnode_modules
Instalamos um pacote e tem esse monte?
(isso tudo são as dependências do pacote archiver)
Compactando um arquivo
Executando
node index.js
434 bytes totais
Módulos
• Módulos são arquivos JavaScript ou pastas contendo arquivos;
• Importar módulos globais ou instalados pelo npm:
• require(NOME_DO_MODULO);
• Importar módulos criados pelo usuário (que estão no projeto):
• require('CAMINHO_RELATIVO_PARA_O_MODULO');
• Exemplo:
• require('fs');
• require('./util'); // Não precisa colocar a extensão .js
Novo módulo
Usando o módulo criado
Interface Gráfica para Desktop
• Há duas formas de criar aplicativos com interface gráfica em NodeJS
1. Utilizar bindings para QT ou GTK:
• node-qt (https://github.com/arturadib/node-qt)
• node-gui (https://github.com/yue/node-gui)
2. Frameworks que empacotam aplicações HTML5:
• NW.js (http://docs.nwjs.io/en/latest/)
• AppJS (http://appjs.com/)
• Há várias aplicações feitas com esses frameworks:
• Atom, Visual Studio Code, WhatsApp Desktop, Spotify, Popcorn Time
Para a próxima aula
• Valendo pontos na primeira avaliação
• O projeto valerá 5 pontos
• Os outros 5 pontos restantes serão um somatório das atividades propostas em sala
• Escreva um aplicativo que compacte uma pasta para um arquivo zip e descompacte
um arquivo zip para uma pasta
• Documentação do pacote archiver:
• https://archiverjs.com/docs/#quick-start
• Para descompactar, você pode usar o pacote extract-zip:
• https://github.com/maxogden/extract-zip
• Exemplo de uso:
• node meu_winrar.js compacta C:tempsubpasta C:temparquivo.zip
• node meu_winrar.js descompacta C:temparquivo.zip C:tempsubpasta

Mais conteúdo relacionado

PPTX
Node JS - Parte 2
PPTX
Node JS - Parte 3
PPTX
Node JS - Parte 4
ODP
Conhecendo o Nodejs
PPTX
Introdução ao NodeJS
PDF
Node js - Javascript Server Side
PPTX
NodeJS - Tutorial de forma simples e pratica.
PPTX
Delphi Parallel Programming Library
Node JS - Parte 2
Node JS - Parte 3
Node JS - Parte 4
Conhecendo o Nodejs
Introdução ao NodeJS
Node js - Javascript Server Side
NodeJS - Tutorial de forma simples e pratica.
Delphi Parallel Programming Library

Mais procurados (19)

PDF
Introdução ao Node.js
PPTX
Testes com javascript
PDF
Nodejs - A performance que eu sempre quis ter
PDF
Containers PostgreSQL com a Crunchy Container Suite
PDF
Django deploy - Como servir aplicações Django em produção
PDF
Docker: um linux container engine
PDF
Node.JS - Workshop do básico ao avançado
PPTX
PDF
JEE nas nuvens: uma introdução ao openshift
PPTX
C# 6.0 - Interopmix 2015
PDF
Otimizando sites com o nosql redis
PPT
Nodejs justdigital
PDF
Drupal + Rex
PPTX
Utilizando Docker para escalonar aplicações Node.Js
PDF
Docker + Django
PDF
Vagrant vs docker? Melhor vagrant + docker
PPTX
Introdução ao Nodejs
PPTX
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
KEY
Uma visão rápida sobre Nodejs
Introdução ao Node.js
Testes com javascript
Nodejs - A performance que eu sempre quis ter
Containers PostgreSQL com a Crunchy Container Suite
Django deploy - Como servir aplicações Django em produção
Docker: um linux container engine
Node.JS - Workshop do básico ao avançado
JEE nas nuvens: uma introdução ao openshift
C# 6.0 - Interopmix 2015
Otimizando sites com o nosql redis
Nodejs justdigital
Drupal + Rex
Utilizando Docker para escalonar aplicações Node.Js
Docker + Django
Vagrant vs docker? Melhor vagrant + docker
Introdução ao Nodejs
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Uma visão rápida sobre Nodejs
Anúncio

Semelhante a Node JS - Parte 1 (20)

PPTX
NodeJS Under the Hood - Concurrency and Multithreading
PDF
Gerenciamento de projetos com o Apache Ant
PDF
Gerenciamento de projetos com o Apache Ant
PDF
Mean Stack
PDF
Java 08
PDF
Integração Contínua com CruiseControl e phpUnderControl
PDF
Integracao Contínua com CruiseControl e phpUnderControl
PDF
Consegi 2011: Puppet
PDF
Integração Contínua com Cruise Control e phpUnderControl
PDF
PDF
Precisamos falar sobre Gradle
PDF
Programação Multiplataforma em Ambiente Web
PDF
Integração Contínua com CruiseControl e phpUnderControl
PDF
Curso de Node JS Básico
PDF
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
ODP
TDC 2014 SP - E o DeltaSpike ?
PDF
dbt no Airflow: Como melhorar o seu deploy (de forma correta)
PPTX
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
PPTX
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
PDF
[Node js] frameworks de testes end to-end baseados em nodejs
NodeJS Under the Hood - Concurrency and Multithreading
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache Ant
Mean Stack
Java 08
Integração Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControl
Consegi 2011: Puppet
Integração Contínua com Cruise Control e phpUnderControl
Precisamos falar sobre Gradle
Programação Multiplataforma em Ambiente Web
Integração Contínua com CruiseControl e phpUnderControl
Curso de Node JS Básico
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
TDC 2014 SP - E o DeltaSpike ?
dbt no Airflow: Como melhorar o seu deploy (de forma correta)
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
[Node js] frameworks de testes end to-end baseados em nodejs
Anúncio

Mais de Bruno Catão (20)

PPTX
Introdução às Redes Neurais - Parte 2/2
PPTX
Introdução às Redes Neurais - Parte 1/2
PPTX
React JS - Parte 2
PPTX
React JS - Parte 1
PDF
Ionic 2/3 + Firebase
PPTX
Retina e Retinose Pigmentar
PDF
Angular js
PDF
Introdução à MEAN Stack
PDF
Web Offline
KEY
Python 08
KEY
Python 07
KEY
Python 06
KEY
Python 05
KEY
Python 04
KEY
Python 03
KEY
Python 02
KEY
Python 01
PDF
Introdução a JavaScript
PDF
Unity3d Space Shooter (Parte 1)
KEY
Introdução ao Framework Grails
Introdução às Redes Neurais - Parte 2/2
Introdução às Redes Neurais - Parte 1/2
React JS - Parte 2
React JS - Parte 1
Ionic 2/3 + Firebase
Retina e Retinose Pigmentar
Angular js
Introdução à MEAN Stack
Web Offline
Python 08
Python 07
Python 06
Python 05
Python 04
Python 03
Python 02
Python 01
Introdução a JavaScript
Unity3d Space Shooter (Parte 1)
Introdução ao Framework Grails

Último (7)

PDF
Evolução em código: algoritmos genéticos com PHP
DOC
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
PDF
Paper_A028_BR_Victor_Enrique_Cavero_Sori (1).pdf
PPTX
Curso de Windows 11 resumido na prática.pptx
PPTX
Mapeamento de Objeto para Tabela Relacional
PDF
apresentacao introducao computacao ead.pdf
PDF
Dos requisitos ao código: como criar código rastreável em PHP
Evolução em código: algoritmos genéticos com PHP
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
Paper_A028_BR_Victor_Enrique_Cavero_Sori (1).pdf
Curso de Windows 11 resumido na prática.pptx
Mapeamento de Objeto para Tabela Relacional
apresentacao introducao computacao ead.pdf
Dos requisitos ao código: como criar código rastreável em PHP

Node JS - Parte 1

  • 1. Node.js Sistemas de Informação Tópicos Avançados de Programação 2019.1 Bruno Catão
  • 2. Criando um novo projeto cd c:PastaOndeFicamSeusProjetos md projetoAula2 cd projetoAula2 npm init
  • 3. Criando um novo projeto This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sensible defaults. See `npm help json` for definitive documentation on these fields and exactly what they do. Use `npm install <pkg>` afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit.
  • 4. Criando um novo projeto package name: (aula2) version: (1.0.0) description: Projeto para a aula 2 de TAP entry point: (index.js) test command: git repository: keywords: author: Bruno Catao license: (ISC) About to write to C:Usersbrunodevtap2019.1aula2package.json: ... Is this OK? (yes)
  • 9. Executando node index.js TODOS OS PRODUTOS: 0. Coxinha R$ 4.00 1. Pastel R$ 3.00 2. Suco R$ 2.00 PRODUTOS DE MENOS DE R$ 3,00: 0. Pastel R$ 3.00 1. Suco R$ 2.00 AUMENTO DE 20% EM TODOS OS PRODUTOS: 0. Coxinha R$ 4.80 1. Pastel R$ 3.60 2. Suco R$ 2.40
  • 10. Argumentos de linha de comando
  • 11. Executando node index.js arg1 arg2=valor arg4 0: C:Program Filesnodejsnode.exe 1: C:Usersbrunodevtap2019.1aula2index.js 2: arg1 3: arg2=valor 4: arg4
  • 12. Objeto Process (https://nodejs.org/api/process.html) • Eventos: • beforeExit – Executar uma função antes de encerrar a execução • Funções: • abort() – Força a interrupção da execução imediatamente • exit(valor) – Envia um sinal para o SO interromper o processo • chdir() – Muda o diretório atual • Atributos: • arch – Exibe atributos da arquitetura de hardware • argv – Objeto com os argumentos da linha de comando • env – Objeto com as variáveis de ambiente
  • 13. Listando arquivos de uma pasta
  • 14. Executando node index.js Uso: node index.js CAMINHO_PARA_PASTA node index.js . index.js package.json
  • 15. Versão recursiva – percorre subpastas
  • 17. Lendo um arquivo – Funções assíncronas
  • 18. Executando node index.js README Este é um arquivo de exemplo. Ele contém várias linhas. Para testar a leitura e gravação de arquivos.
  • 19. Gravando um arquivo – Funções assíncronas
  • 20. Executando node index.js saida.txt Dados gravados com sucesso. type saida.txt Dados que vão ser gravados
  • 21. Exemplo Prático – Gravando objetos
  • 22. Executando node index.js Dados gravados com sucesso. type dados_produtos.json [{"nome":"Coxinha","valor":4},{"nome":"Pastel","valor":3.5},{"nome":"S uco","valor":2}]
  • 23. Exemplo Prático – Lendo objetos
  • 24. Executando node index.js 0 - Coxinha - R$ 4.00 1 - Pastel - R$ 3.50 2 - Suco - R$ 2.00
  • 25. Exemplo Prático #2 – Compactando arquivos npm install archiver –save npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN aula2@1.0.0 No repository field. + archiver@3.0.0 added 51 packages from 28 contributors and audited 180 packages in 15.112s found 0 vulnerabilities • Vamos instalar um pacote no nosso projeto • Para isso, utilizamos o comando “npm install <NOME_DO_PACOTE>” • O argumento “—save” salva o pacote no arquivo package.json
  • 26. Onde os pacotes são instalados ? • Pacotes locais: • Pasta node_modules do seu projeto • Pacotes globais (npm install –g <PACOTE>): • Pasta C:UsersUSUARIOAppDataRoamingnpmnode_modules Instalamos um pacote e tem esse monte? (isso tudo são as dependências do pacote archiver)
  • 29. Módulos • Módulos são arquivos JavaScript ou pastas contendo arquivos; • Importar módulos globais ou instalados pelo npm: • require(NOME_DO_MODULO); • Importar módulos criados pelo usuário (que estão no projeto): • require('CAMINHO_RELATIVO_PARA_O_MODULO'); • Exemplo: • require('fs'); • require('./util'); // Não precisa colocar a extensão .js
  • 32. Interface Gráfica para Desktop • Há duas formas de criar aplicativos com interface gráfica em NodeJS 1. Utilizar bindings para QT ou GTK: • node-qt (https://github.com/arturadib/node-qt) • node-gui (https://github.com/yue/node-gui) 2. Frameworks que empacotam aplicações HTML5: • NW.js (http://docs.nwjs.io/en/latest/) • AppJS (http://appjs.com/) • Há várias aplicações feitas com esses frameworks: • Atom, Visual Studio Code, WhatsApp Desktop, Spotify, Popcorn Time
  • 33. Para a próxima aula • Valendo pontos na primeira avaliação • O projeto valerá 5 pontos • Os outros 5 pontos restantes serão um somatório das atividades propostas em sala • Escreva um aplicativo que compacte uma pasta para um arquivo zip e descompacte um arquivo zip para uma pasta • Documentação do pacote archiver: • https://archiverjs.com/docs/#quick-start • Para descompactar, você pode usar o pacote extract-zip: • https://github.com/maxogden/extract-zip • Exemplo de uso: • node meu_winrar.js compacta C:tempsubpasta C:temparquivo.zip • node meu_winrar.js descompacta C:temparquivo.zip C:tempsubpasta