使用Node.js监控目录变化

发布于2013年8月9日 -

Node.js提供了fs.watchfs.watchFile用于监控文件的变化。不过Node.js的这两个函数做的不够好,API也并不友善,因此,github上可以找到不少它们的wrapper。这里介绍的是Paul MillerChokidar

安装

Chokidar可以使用包管理器来安装:

npm install chokidar

使用

Chokidar的使用非常简单,一起来看一个例子:

chokidar = require 'chokidar'
watcher = chokidar.watch 'files', persistent: true

watcher
  .on 'add', (path) ->
    console.log(path, 'added')
  .on 'change', (path) ->
    console.log(path, 'changed')
  .on 'unlink', (path) ->
    console.log(path, 'removed')

如果还想得到更多关于文件的信息,可以使用复杂一点的回调函数:

watcher.on 'change' (path, stats) ->
  console.log('File', path, 'changed size to', stats.size)

这里,stats是相应的fs.Stats对象,格式见这里