Hola,
pero si vas a usar
Código PHP:
module.exports={
isBanned:function(ip , callback ){
var fs=require('fs');
var fileName='./views/bannedList.txt';
fs.exists(fileName,function(exists){
if(exists){
fs.stat(fileName,function(err,stats){
if(err)throw err;
fs.open(fileName,'r',function(err,fd){
var buffer=new Buffer(stats.size);
fs.read(fd,buffer,0,buffer.length,null,function(err,bytesRead,buffer){
bannedips=buffer.toString('utf8',0,buffer.length);
bannedips=bannedips.split('|||');
for(var a=0;a<bannedips.length;a++){
console.log(ip);
console.log(bannedips[a]);
if(bannedips[a]==ip)
callback(true); // estas en una funcion anonima no puedes usar return porque estas asiendo una funcion asycronica.
}
callback(false);
});
});
});
}else{
console.log('Banned file don\'t exists. Exit program!');
process.exit(code=0);
}
});
callback(true);
}
}
Digamos que vas a testear un ip, entonce
Código PHP:
isBanned(192.168.1.1 , function(res){
// tienes un retorno en el callback
/**
*sigue o no con otras funciones o pruebas importantes aquí
*/
if(res === true){
}
})
Ya que tu function que prueba si el ip esta baneado es importante , todo deberia hacerse dentro de la function anónima.