2011-10-13 17 views
5

नोड 0.5.9 के माध्यम से मैं नोड v0.5.9 पर निम्नलिखित चल रहा हूँ:fs.watch पर मैक OSX

var fs = require("fs"); 
fs.watch("/Users/username/testingFsWatcher/",function(event,file) { 
    console.dir(arguments); 
}); 

मैं तो कार्य करें:

  • cd /Users/username/testingFsWatcher/
  • >file1 - >{ '0': 'rename', '1': null }
  • mkdir new_folder ->{ '0': 'rename', '1': null }
  • >new_folder/file2 -> कोई ईवेंट ट्रिगर/आउटपुट
  • touch file1 -> कोई ईवेंट ट्रिगर/आउटपुट
  • rm file1 ->{ '0': 'rename', '1': null }

दो बातें मैंने देखा है कि गलत प्रतीत: उपनिर्देशिका (new_folder) देखा नहीं कर रहे हैं और देखे गए फ़ाइलों में अद्यतन/संशोधन change ईवेंट ट्रिगर नहीं करते हैं। नोड कोड और परीक्षणों को देखते हुए ऐसा लगता है कि यह संभव होना चाहिए।

तो, क्या निर्देशिका और इसकी सभी उपनिर्देशिका देखने के लिए fs.watch प्राप्त करना संभव है? फ़ाइल संशोधन से कोई घटना प्राप्त करना कम से कम संभव है? इसके अलावा, मैं जो कह सकता हूं, fs.watch को kqueue द्वारा समर्थित किया गया है जो eventid (ओएसएक्स में) से जुड़ा हुआ है, क्या यह eventid प्राप्त करना संभव है?

नोट: मैं विशेष रूप से fs.watch का उपयोग कर रहा हूं और fs.watchFile नहीं है क्योंकि मुझे पूरी निर्देशिका देखने की आवश्यकता है (अधिमानतः इसकी सभी उपनिर्देशिकाएं भी :)।

सहायता के लिए धन्यवाद!

+0

0.5.9 स्थिर नहीं है। अधिक विस्तृत उदाहरण के साथ जिथब में एक बग जोड़ने के लिए स्वतंत्र महसूस करें। आप इसहाक – malletjo

+0

द्वारा "पर्यवेक्षक" का उपयोग कर सकते हैं यह समस्या https://github.com/joyent/node/issues/1986 पर रिपोर्ट की गई है, और कम से कम आंशिक रूप से स्थिर 0.6.0 के तहत तय की गई है। –

+0

लिंक ट्रेवर के लिए धन्यवाद! एक बार मुझे 0.6.0 में अपग्रेड करने का मौका मिलने के बाद मैं अपने परिणामों को उस धागे पर पोस्ट करने का प्रयास करूंगा ... :) –

उत्तर

0

यह समस्या अब नवीनतम नोड रिलीज़ में प्रकट नहीं होती है। हालांकि, fs.watch में कई अन्य शेष बग हैं, इसलिए आप इसे तब तक उपयोग करना बंद कर सकते हैं जब तक उन्हें संबोधित नहीं किया जाता: https://github.com/joyent/node/issues/search?q=fs.watch

संबंधित मुद्दे