节点目录监视错误

时间:2014-09-10 11:19:07

标签: javascript node.js

我有一个非常简单的Node.js脚本,它监视一个名为'in'的目录,当一个文件被放入那里时,gzip将它变为'out',然后删除(取消链接)原始文件...但是在取消链接阶段我从原始输入流中发出错误。

var fs     = require('fs');
var zlib   = require('zlib');

fs.watch(__dirname + '/in', function (event, filename) {
  var gzip = zlib.createGzip();

  var inputPath  = 'in/' + filename;
  var outputPath = 'out/' + filename + '.gz';

  var inputStream  = fs.createReadStream(inputPath);
  var outputStream = fs.createWriteStream(outputPath);

  outputStream.on('finish', function () {
    fs.unlink(inputPath);
  });

  inputStream.on('error', function (err) {
    console.dir(err); // Error is thrown here
  });

  inputStream
    .pipe(gzip)
    .pipe(outputStream);
});

错误是这样的:

{ [Error: ENOENT, open 'in/test.gif'] errno: 34, code: 'ENOENT', path: 'in/test.gif' }

这表示该文件不再存在,但是我想当inputStream的finish事件被触发时,inputStream将完成该文件...

这里有任何帮助以澄清我对溪流的理解,我们将不胜感激。

0 个答案:

没有答案