#!/usr/bin/env node/*添加Watcher類的構造器。它的兩個參數分別是要監控的目錄和放置修改過的文件的目錄*/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';/*擴展EventEmitter,添加處理文件的方法*/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]); } });}/*擴展EventEmitter,添加開始監控的方法*/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 processedFile = this.processedDir + '/' + file.toLowerCase(); fs.rename(watchFile,processedFile,function(err){if(err) throw err; });});/*啟動監聽*/watcher.start();
創建watch和done目錄。
啟動node服務:node app.js
把文件丟到watch目錄中,然后看著文件出現在done目錄中,文件名被改成小寫。
新聞熱點
疑難解答