The parameters passed to your callback are fs.Stats objects, which 
unfortunately do not contain a filename, so you need to pass one along 
yourself.  Your second approach was the right idea, but implemented with a 
common asynchronous code bug - by the time your callback is called, i is 
now equal to fileNames.length, so fileNames[i] is undefined.  You probably 
want something which binds the filename to your callback:
  for (i=0; i<fileNames.length; i++) {
    fs.watchFile(filename, doAll.bind(null, fileNames[i]));
  }
or creates a new scope for every step of the loop:
  fileNames.forEach(function(filename) {
    fs.watchFile(filename, function() {
      doAll(filename);
    });
  });



On Wednesday, November 25, 2015 at 5:48:17 PM UTC-8, Anirban Bhattacharya 
wrote:
>
> I also Tried the below option 
>
> for(i=0;i<fileNames.length;i++) 
> { 
>         console.log(fileNames[i]); 
> fs.watchFile(fileNames[i],function(prev,cur){ 
>   console.log(fileNames[i]); 
> doAll(fileNames[i]); 
> }); 
> } 
> function doAll(fileName) 
> { 
>
> console.log(fileName); 
> } 
>
> But the console.log() in callback printing undefined. 
> -------------------------------------------- 
> On Tue, 24/11/15, Anirban Bhattacharya <anirbanbhat...@gmail.com 
> <javascript:>> wrote: 
>
>  Subject: How to pass/get fileName in callBack of watchFile 
>  To: "nodejs" <nod...@googlegroups.com <javascript:>> 
>  Cc: "Anirban Bhattacharya" <anirbanbhat...@yahoo.co.in <javascript:>> 
>  Date: Tuesday, 24 November, 2015, 10:22 AM 
>   
>  HI, 
>   
>  I have to watch multiple files, and I don't want to 
>  create seperate callback function for each. 
>   
>  fs.watchFile(testFile,callBack); 
>  function callBack(cur,prev) { 
>  console.log("in Test.."); 
>  var data=''; 
>  } 
>   
>  How can I get the fileName from the callBack function? 
>   
>  Thanks, 
>  Anirban 
>   
>

-- 
Job board: http://jobs.nodejs.org/
New group rules: 
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
To post to this group, send email to nodejs@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/nodejs/8c941dd4-84d9-4d12-856a-9d3621ab564a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to