2017-01-19 2 views
0

Ich versuche, ein JSON-Objekt in eine Variable zu bekommen, um die Zeit anzuzeigen, die Leute in einem Facebook-Chatbot in einer Zeichenfolge warten müssen. Ich habe verschiedene Möglichkeiten ausprobiert und habe auch alle anderen Möglichkeiten ausprobiert, die ich beim Stack-Überlauf oder Blogpost gefunden habe, aber es kommt immer undefiniert zurück.POST-Anfrage in NODEJS bleibt undefined

var waitingTime = request.post(
    "https://mypage.com/data/data/responsetime", 
    { 
     form: { 
      'key': 'value' 
     } 
    }, 
    function (error, response, body) { 
     if (!error && response.statusCode == 200) { 
      JSON.parse(body.responsetime) 
      console.log(response) 
     } 
    } 
); 
+1

prüfen 'error' und die Antwort zu sehen, ob ein Fehler bei der Anforderung oder kann es war sein die Antwort ist nicht 200 –

Antwort

0

Ich weiß nicht, ob Sie wirklich JSON.parse(body.responetime) statt JSON.parse(body.responsetime) schrieb (Sie responsetime falsch geschrieben), aber es kann Ihr undefined Problem verursachen! PS: Ich habe deinen Beitrag bearbeitet und dachte, das sei ein Fehler (ich hoffe es war: P).

Auch wenn das nicht das Problem ist, denke ich, dass Ihr Code fast stimmt. Aber Sie müssen verstehen, wie request funktioniert und wie Callbacks funktionieren. Wenn Sie request.post() verwenden, führen Sie einen asynchronen Aufruf aus, dh Sie müssen das Ende des Prozesses warten, wenn Sie das Ergebnis wünschen. Deshalb geben Sie als dritten Parameter request.post(address, data, callback) eine Funktion an.

Als nächstes, wenn Sie Ihre var waitingTime initialisieren möchten, müssen Sie es in der Callback-initialisieren:

var waitingTime = null; 

request.post(
    "https://mypage.com/data/data/responsetime", 
    { 
     form: { 
      'key': 'value' 
     } 
    }, 
    function (error, response, body) { 
     if (!error && response.statusCode == 200) { 
      waitingTime = JSON.parse(body.responsetime); 
      // Now you can use the waitingTime variable. 
     } 
    } 
); 
+0

Dank Paul, ja, ich bemerkte die Rechtschreibfehler! Aber das war es nicht, danke für den Rat! – Daan

+0

Cool :) Ich hoffe, dass meine Lösung Ihr Problem beheben wird. Verstehst du jetzt, wie die Callbacks funktionieren? Wenn Sie mehr Details benötigen, kann ich noch 5 Minuten dauern, um das zu erklären :) –

Verwandte Themen