Monitorando arquivos com NodeJS

Monitorando arquivos com NodeJS

Hoje você vai aprender como monitorar arquivos de uma pasta usando o NodeJS e o Chokidar.

Se você não tem o NodeJS instalado em seu computador, pode baixar a partir deste endereço

https://nodejs.org/

Uma vez instalado, a partir do seu terminal, e dentro da pasta onde você vai guardar o seu projeto, digite:

npm init

Você pode responder todas as questões pressionando ENTER. No final do processo, será criado um arquivo chamado package.json, onde serão instaladas as dependências de nosso projeto.

Uma vez criado o projeto, vamos adicionar 2 bibliotecas que serão utilizadas apenas no ambiente de desenvolvimento. A primeira é o Nodemom, que permite reiniciar a aplicação NodeJS sempre que houver alguma alteração na pasta do projeto. Para instalar, digite o seguinte comando no seu terminal:

npm install nodemon -D

A segunda biblioteca é o chokidar, que permite monitorar alterações em arquivos.

npm install chokidar -D

Vamos editar o nosso arquivo package.json. Na parte de scripts, vamos adicionar o seguinte:

"scripts": {

    "test": "echo "Error: no test specified" && exit 1",

    "start": "nodemon index.js"

  },

Este script "start" é um atalho para iniciar o nosso aplicativo. A partir de agora, será possível iniciar o aplicativo com o comando

npm start

Crie uma pasta chamada "arquivos" na raiz do seu projeto, e adicione dentro desta pasta alguns arquivos a sua escolha.

Depois, crie um arquivo index.js na raiz do seu projeto e insira os seguintes comandos.

var chokidar = require('chokidar');

var watcher = chokidar.watch('arquivos', {ignored: /[/]./}).on('all', function(event, path) {

  console.log(event, path);

});

Salve as alterações e depois inicie o seu projeto digitando:

npm start

Você vai ver uma lista dos seus arquivos, precedidos da palavra ADD, que é o método utilizado quais os arquivos foram lidos. Faça alguns testes, alterando arquivos ou removendo, você vai ver que as alteraçõe serão refletidas no console.

Podemos personalizar as mensagens de acordo com o evento que foi executado, como alteração ou exclusão. O código final vai ficar da seguinte forma:

var chokidar = require('chokidar');

var watcher = chokidar.watch('pasta', {ignored: /[/]./}).on('all', function(event, path) {

  //console.log(event, path);

});

var log = console.log.bind(console);

watcher

.on('add', function(path) { log('Arquivo ', path, ' foi adicionado'); })

.on('addDir', function(path) { log('Pasta', path, ' foi adicionada'); })

.on('change', function(path) { log('Arquivo ', path, ' foi alterado'); })

.on('unlink', function(path) { log('Arquivo ', path, ' foi removido'); })

.on('unlinkDir', function(path) { log('Pasta ', path, ' foi excluída'); })

.on('error', function(error) { log('Houve um erro', error); })

.on('ready', function() { log('Varreduda inicial concluída. Aguardando alterações.'); })

Uma lista com os recursos completos você pode ver neste link:

https://github.com/paulmillr/chokidar

 

 

Está começando e deseja saber o que precisa estudar de HTML e JavaScript? Não deixe de conferir os roteiros de estudo de HTML e JavaScript!. São dezenas de conteúdos para você melhorar suas habilidades.

Roteiro de estudos - HTML e CSS

Roteiro de estudos - Javascript

 

Outros conteudos que podem ser de seu interesse

Tesouros do GitHub
17/03/2024JAVASCRIPT

Tesouros do GitHub

O melhor do GitHub para evoluir o seu conhecimento

Saiba mais...
Jogos e desafios para quem quer estudar programação
08/05/2022JAVASCRIPT

Jogos e desafios para quem quer estudar programação

Não importa se é frontend, backend ou mobile, tem sempre um desafio esperando por você

Saiba mais...
Separando um array de strings em conjuntos de arrays ordenados alfabeticamente com JavaScript
19/03/2023JAVASCRIPT

Separando um array de strings em conjuntos de arrays ordenados alfabeticamente com JavaScript

Veja várias formas de separar um array de string com JavaScript

Saiba mais...

Conteúdo sobre banco de dados sem complicação!


Warning: Cannot modify header information - headers already sent by (output started at /home/storage/f/7d/a9/dbins/public_html/blog/post.php:101) in /home/storage/f/7d/a9/dbins/public_html/blog/ga4_track.php on line 11