2016-07-15 11 views
1

i Nachricht an meine Rückruf nach get Rückruf wie diese zu lesen Datei festlegen möchten:wie benutzerdefinierte Callback-Funktion in js schreiben

exp.getServerHandler=function (request,response){ 

    if(request.url.startsWith("/static/")){ 
     //passing my custom callback function as an input param 
     fileReadHandler(request,response,function callback(message){ 
      console.log(message); 
     }); 
    } 
}; 

function fileReadHandler(request,response,callback){ 
    fs.readFile(request.url.substr(1), 
     function(err,data) { 
      if(err){ 
       response.end("bad request"); 
       response.statusCode=400; 
       //here i want to set message as my callback param 
       callback("failed"); 
      }else{ 
       response.end(data); 
       //here i want to set message as my callback param 
       callback("successful"); 
      } 
     } 
    ); 
} 

aber Konsole anmelden nicht die Botschaft meines Rückruf! Wo ist das Problem? Ist das der richtige Weg?

edit:

dieser Code funktioniert gut und richtig

+0

können Sie bitte zeigen, wie genau Sie Ihre Funktion aufrufen? –

+0

@AlexanderNovikov welche Funktion? getServerHandler oder .. ?? –

+0

exp.getServerHandler, und sind Sie sicher, dass Sie alle notwendigen Parameter übergeben? weil es zu false in ersten If-Anweisung/ –

Antwort

-4

Versuchen Sie, die callback Funktionsnamen zu entfernen, wenn es um fileReadHandler wie dies vorbei:

exp.getServerHandler=function (request,response){ 

    if(request.url.startsWith("/static/")){ 
     //passing my custom callback function as an input param 
     fileReadHandler(request,response,function(message){ 
      console.log(message); 
     }); 
    } 
}; 

function fileReadHandler(request,response,callback){ 
    fs.readFile(request.url.substr(1), 
     function(err,data) { 
      if(err){ 
       response.end("bad request"); 
       response.statusCode=400; 
       //here i want to set message as my callback param 
       callback("failed"); 
      }else{ 
       response.end(data); 
       //here i want to set message as my callback param 
       callback("successful"); 
      } 
     } 
    ); 
} 
+1

___NO___ Eine falsche Schätzung .... Es wird immer das Argument .. – Rayon

+0

im Anfänger in js, aber ich weiß nichts anderes zwischen Funktion Rückruf (...) und Funktion (...)! aber ich habe versucht und hilft nicht –

+0

Ja, sicher, was.Ich war hier zu schnell! – MartinHN

-3

Verwendung dieser Code:

exp.getServerHandler=function (request,response){ 
    if(request.url.startsWith("/static/")){ 
     //passing my custom callback function as an input param 
     fileReadHandler(request,response,function callback(message){    
      if (window.console && window.console.log) 
       window.console.log(message); 
     }); 
    } 
}; 
  1. Konsolenobjekt prüfen, da eq. IE-Konsolenobjektzufuhr nur bei geöffnetem Konsolenfenster
  2. Verwenden Sie den vollständigen Pfad window.console.
+0

es hilft nicht –

+0

Der Beitrag ist mit dem Tag Node.js markiert. Knoten hat kein 'Fenster'-Objekt. – Pointy

Verwandte Themen