Update 1
Monitor acquisitions and directories using the library Node-watch.
let watch = require('node-watch');
watch(['arquivo.txt', 'teste/', 'teste/arquivo.txt'], console.log);
Behold running on repl.it
Through the comments I found the package Chokidar and I got the result.
const chokidar = require('chokidar');
const fs = require('fs');
let conteudo_anterior = '';
let arquivo = 'arquivo.txt';
// Faz a leitura inicial
fs.readFile(arquivo, { encoding: 'utf-8' }, function(err, data) {
if (!err) {
let linhas = data.trim().split('\n');
// Retorna o conteúdo
linhas.forEach(function(linha) {
console.log(linha);
conteudo_anterior = linha;
});
} else {
// Retorna o erro
console.log(err);
}
});
// Monitora o arquivo
let watcher = chokidar.watch(arquivo, { persistent: true });
watcher.on('change', (path, stats) => {
if (stats) {
fs.readFile(path, { encoding: 'utf-8' }, function(err, data) {
if (!err) {
let linhas = data.trim().split('\n');
// Última linha
let ultima = linhas.slice(-1)[0];
// Verifica se a linhas tem conteúdo.
// Se tiver conteúdo e se o conteúdo é diferente do anterior, caso contrário nada faz.
(ultima.length > 0 && ultima != conteudo_anterior) ? console.log(ultima) : '';
conteudo_anterior = ultima;
} else {
// Retorna o erro
console.log(err);
}
});
}
});
There is the Fs.watch that has some issues outside of macOS and Windows. What operating system do you use?
– Sergio
Now I’m using the Centos 7. It’s my main system, I don’t like to use Windows rs.
– NoobSaibot