Как отслеживать события в папке (добавление, удаление) в 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 но они не сказать что хорошо работают.