Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/09/2013, 02:00
Avatar de patilanz
patilanz
 
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 10 meses
Puntos: 29
Nodejs banned list

Hola tengo una funcion que debe de devolver true si un usuario es baneado, pero estoy usando fs para leer la lista de baneos y esta tiene una funcion cellback de modo que no se como devolver true en la funcion de banneo:

Código Javascript:
Ver original
  1. module.exports={
  2.     isBanned:function(ip){
  3.         var fs=require('fs');
  4.         var fileName='./views/bannedList.txt';
  5.         fs.exists(fileName,function(exists){
  6.             if(exists){
  7.                 fs.stat(fileName,function(err,stats){
  8.                     if(err)throw err;
  9.                     fs.open(fileName,'r',function(err,fd){
  10.                         var buffer=new Buffer(stats.size);
  11.                         fs.read(fd,buffer,0,buffer.length,null,function(err,bytesRead,buffer){
  12.                             bannedips=buffer.toString('utf8',0,buffer.length);
  13.                             bannedips=bannedips.split('|||');
  14.                             for(var a=0;a<bannedips.length;a++){
  15.                                 console.log(ip);
  16.                                 console.log(bannedips[a]);
  17.                                 if(bannedips[a]==ip)return true;//Aqui devuelvo true pero en la funcion cellback de fs.read y yo quiero hacer lo en la funcion isBanned
  18.                             }
  19.                             return false;
  20.                         });
  21.                     });
  22.                 });
  23.             }else{
  24.                 console.log('Banned file don\'t exists. Exit program!');
  25.                 process.exit(code=0);
  26.             }
  27.         });
  28.     }
  29. }

Alguna idea