Как отслеживать события в папке (добавление, удаление) в Node.js

Собственно, задачу понятно из заголовка.

Программа должна выглядеть так:

 Import {DirService} from ‘./dir_service.js’
    const PATH = ‘/tmp’ 
    const service = new DirService(path)
    service.on(‘file_created’, (e) => console.log(`Created: ${e.filename}`))  
    service.on(‘file_deleted’, (e) => console.log(`Deleted: ${e.filename}`))  
    service.on(‘error’, console.error)
    service.start()
    setTimeout(()=>service.stop(), 60000)

Имеется код:

const EventEmitter = require('events');

class DirService extends EventEmitter {
  start(method, route) {
    this.emit('file_created', { method, route })
    this.emit('file_deleted', { method, route })
  }
  stop() {

  }
module.exports = DirService;

const DirService = require('./dirSrvice');
const service = new DirService();
service.on('file_created', (data) => {
  console.log('Created', data);
});
service.on('file_deleted', (data) => {
  console.log('Deleted', data);
});
service.start('GET', '/admin/dashdoard');

Может, кто-то может помочь?


Ответы (1 шт):

Автор решения: Eugene X

Ну например вот так можно.

const chokidar = require('chokidar');

let watcher = chokidar.watch('file or dir', {ignored: /^\./, persistent: true});
watcher
  .on('add', function(path) {console.log('File', path, 'has been added');})
  .on('change', function(path) {console.log('File', path, 'has been changed');})
  .on('unlink', function(path) {console.log('File', path, 'has been removed');})
  .on('error', function(error) {console.error('Error happened', error);})

Или функциями из fs - fs.watch и fs.watchFile но они не сказать что хорошо работают.

→ Ссылка