2011-10-13 14 views
5

estoy ejecutando el siguiente en v0.5.9 Nodo:fs.watch a través del nodo 0.5.9 en Mac OS X

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

entonces que hago:

  • cd /Users/username/testingFsWatcher/
  • >file1 - >{ '0': 'rename', '1': null }
  • mkdir new_folder ->{ '0': 'rename', '1': null }
  • >new_folder/file2 -> ningún caso desencadenó/salida
  • touch file1 -> ningún caso desencadenó/salida
  • rm file1 ->{ '0': 'rename', '1': null }

Dos cosas que noté que parecen incorrectos: subdirectorios (new_folder) no se observó y las actualizaciones/modificaciones en los archivos vigilados no desencadenan un evento change. Mirando el código del nodo y las pruebas, parece que esto debería ser posible.

Entonces, ¿es posible obtener fs.watch para ver un directorio y todos sus subdirectorios? ¿Al menos es posible obtener un evento de una modificación de archivo? Además, por lo que puedo decir, fs.watch está respaldado por kqueue que está vinculado a un eventid (en OSX), ¿es posible obtener ese eventid?

Nota: Estoy usando específicamente fs.watch y no fs.watchFile porque necesito ver un directorio completo (preferiblemente todos sus subdirectorios también :).

¡Gracias por la ayuda!

+0

0.5.9 no es estable. Siéntase libre de agregar un error en github con un ejemplo más detallado. Puede usar "Supervisor" por Isaac – malletjo

+0

Este problema se reporta en https://github.com/joyent/node/issues/1986, y al menos parcialmente se encuentra en el estable 0.6.0. –

+0

Gracias por el enlace Trevor! Trataré de publicar mis resultados en ese hilo una vez que tenga la oportunidad de actualizar a 0.6.0 ... :) –

Respuesta