2016-06-07 11 views
1

Ich bin nicht vertraut mit Node js und ebenso wie mit HTTP-Anfragen so entschuldigen Sie mich, wenn das etwas offensichtlich ist.

Ich verfolge die Beispiele auf dieser website:

$.ajax({ 
    url: 'https://api.wit.ai/message', 
    data: { 
    'q': 'set an alarm in 10min', 
    'access_token' : 'MY_WIT_TOKEN' 
    }, 
    dataType: 'jsonp', 
    method: 'GET', 
    success: function(response) { 
     console.log("success!", response); 
    } 
}); 

Ich versuche, das Äquivalent von diesem aber in Knoten Js zu erstellen. Ich habe versucht, 'node request' zu verwenden, aber mein Code funktioniert nicht. Ich habe viele Variationen davon versucht, aber ohne Erfolg. Hier

ein Beispiel:

var request = require('request'); 

var url = 'https://api.wit.ai/message'; 

var data = { 
    'q': 'hello test123 trying to get entities from this message', 
    'access_token': 'MY_WIT_TOKEN' 
}; 

request.get({ url: url, formData: data }, function (err, httpResponse, body) { 
    if (err) { 
     return console.error('post failed:', err); 
    } 

    console.log('Get successful! Server responded with:', body); 
}); 

Wenn ich diesen Code zu kompilieren, mein Terminal antwortet mit:

ging etwas schief. Wir wurden benachrichtigt.

+0

Sie würden besser auf die [docs] beziehen (https://nodejs.org/api/http.html) –

Antwort

1

Verwendung http:

var http = require('http'); 

http.get({ 
    host: 'api.wit.ai', 
    path: '/message' 
}, function(response) { 

    var body = ''; 

    // get all data from the stream 
    response.on('data', function(data) { 
     body += data; 
    }); 

    response.on('end', function() { 
     // all data received 
     console.log(body) 
    }); 
}); 
+1

Das Anfrage-Modul, das die OP bereits verwendet, ist ein höheres Niveau und eine einfachere Modul zu verwenden für einfache HTTP-Anfragen. Also, nicht sicher, warum Sie vorschlagen, dass sie nur das HTTP-Modul sichern. Es kann gut funktionieren, erfordert aber mehr Code und hat weniger Funktionen. – jfriend00

1

Für alle Interessierten hier ist die Antwort mit Knotenanforderung die für mich gearbeitet.

var request = require('request'); 

var headers = { 
    'Authorization': 'Bearer <WIT_TOKEN>' 
}; 

var options = { 
    url: 'https://api.wit.ai/message?v=20160607&q=hello', 
    headers: headers 
}; 

function callback(error, response, body) { 
    if (!error && response.statusCode == 200) { 
     console.log(body); 
    } 
} 

request(options, callback);