Node.js 扩展时间监听器:文件监视器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js 扩展时间监听器:文件监视器相关的知识,希望对你有一定的参考价值。

创建一个Watcher类来处理放在某个目录下的文件。然后可以用这个类创建一个工具,该工具可以监视目录(watch目录,将放到里面的文件名都改成小写),并将文件复制到一个单独目录(done目录)中。

扩展事件发射器需要三步:

  1. 创建类的构造器;
  2. 继承时间发射器的行为;
  3. 扩展这些行为。

代码:

function Watcher(watchDir, processedDir) {
    this.watchDir       = watchDir;
    this.processedDir   = processedDir;
}

var events = require(‘events‘)
    , util = require(‘util‘);

util.inherits(Watcher, events.EventEmitter);

var fs = require(‘fs‘)
    , watchDir = ‘./watch‘
    , processedDir = ‘./done‘;

Watcher.prototype.watch = function () {
    var watcher = this;
    fs.readdir(this.watchDir, function (err, files) {
        if (err) throw err;
        for (var index in files) {
            watcher.emit(‘process‘, files[index]);
        }
    })
};

Watcher.prototype.start = function () {
    var watcher = this;
    fs.watchFile(watchDir, function () {
        watcher.watch();
    });
};

var watcher = new Watcher(watchDir, processedDir);

watcher.on(‘process‘, function process(file) {
    var watchFile       = this.watchDir + ‘/‘ + file;
    var processedDir    = this.processedDir + ‘/‘ + file.toLowerCase();

    fs.rename(watchFile, processedDir, function (err) {
        if (err) throw err;
    });
});

watcher.start();

 

以上是关于Node.js 扩展时间监听器:文件监视器的主要内容,如果未能解决你的问题,请参考以下文章

Node.js JavaScript 片段中的跳过代码

Node.JS:出现错误:[nodemon] 内部监视失败:监视 ENOSPC

Socket.io - 在 node.js 的单独文件中监听事件

为啥 Node.js 不连续监听事件?

正确导出 node.js 中的类以在其他所需文件中扩展它们[重复]

写c++扩展的时候,怎么样让node-gyp找到需要的头文件