Saturday, August 16, 2014

node.js fs.watch

node.jsのメモ.

fs.watch(filename, [options], [listener])

ファイルまたはディレクトリ名をfilenameに指定すると、変化があった時にコールバックlistnerを実行する。listner関数は2つの引数を取る。

  • eventchange, renameのどちらか。
  • filename … ファイルパス。提供されない場合もある。

optionのデフォルトは{persistent: true}で恒久的に監視を続けるとかなんとか。

この関数は完全に動作を保証するものではなく、動作するOSによって動きが異なるかもしれない。

OS ネイティブコール
Linux inotify
Windows ReadDirectoryChangesW

サンプルコード

Watcher.prototype.start = function() {
    var watcher = this;
    fs.watch(watchDir, function(event, filename) {
        console.log('event is: ' + event);
        if(filename) {
            console.log('filename provided: ' + filename);
        }
        watcher.watch();
    });
}

watcher.watch()は監視しているディレクトリに対して、実際に何らかの処理を行う。


これでVoiceconsoroid.wavがwavファイルを作成し終えた事を感知して転送などの処理をトリガーできる。

Written with StackEdit.

No comments:

Post a Comment