FS-Watch - Checando mudanças em um arquivo-diretório

FS-Watch - Checando mudanças em um arquivo-diretório

Tulio Faria
Tulio Faria17 de outubro de 2017
Hoje eu quero mostrar duas funcionalidades que nós temos no FS padrão no Node e que podem ajudar bastante em alguns tipos de situações, como por exemplo checar se algum arquivo de log foi gerado em um diretório ou, às vezes, um arquivo de exportação.
Primeiramente temos uma pasta criada, nele vou criar um arquivo novo chamado fs-watch.js e fazer o seguinte:

const fs = require('fs')

Dentro do próprio FS eu tenho duas possibilidades: o watchFile, onde eu posso checar se um arquivo está sendo alterado:

fs.watchFile('file.txt', (curr, next) => { console.log(curr, next) })

Basicamente ele vai mostrar para o que mudou em cada alteração do arquivo, por exemplo, se rodarmos ele, editar o arquivo file.txt e salvar, vai ser mostrado o que foi mudado. Se colocarmos apenas o size, podemos ver como era atualmente e anteriormente esse mesmo arquivo:

fs.watchFile('file.txt', (curr, prev) => { console.log(curr.size, prev.size) })

Assim, sempre que mudarmos o número de caracteres do arquivo, ele vai mostrar o quanto nós temos agora e o quanto tinha anteriormente.
Essa é uma das formas que temos de saber se o arquivo foi ou não alterado. O que podemos fazer com isso? Podemos, por exemplo, fazer um WatchFile simplesmente para saber se o atual é maior que o anterior, pensando em arquivos de log, geralmente colocamos no final para caso haja algum incremento no arquivo, com isso é possível saber quantos bytes foram adicionados.
Outra forma que temos de fazer é utilizando o fs.watch(). Com ele podemos checar um diretório contra mudanças:

fs.watch('./', (changeType, file) => { console.log('change', changeType, file) })

Ao fazermos isso, ele vai checar nesse diretório qualquer arquivo que foi alterado, assim temos bastante precisão neste tipo de operação.
Confira o video:
kJxdeJ55GOI
Assistir vídeo
Curta o DevPleno no Facebook, se inscreva no canal no YouTube e cadastre seu e-mail para não perder as atualizações. Abraço!
Tulio Faria
Autor
Tulio Faria17 de outubro de 2017

Últimas do Blog