2016-06-07 73 views
1

我不是很熟悉Node js,也不太熟悉http請求,所以如果這是明顯的東西,請原諒我。

我下面這個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); 
    } 
}); 

我想創建的這一點,但在節點的js的等價物。我試圖使用'節點請求',但是我的代碼不工作。我嘗試了很多變化,但無濟於事。

下面是一個例子:

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); 
}); 

當我編譯這段代碼,我用終端回覆:

出了錯。我們已收到通知。

+0

你最好參考[文檔](https://nodejs.org/api/http.html) –

回答

1

使用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

的OP已經在使用該請求模塊是一個更高的層次和更簡單的使用模塊對於普通的http請求。所以,不知道你爲什麼建議他們備份http模塊。它可以正常工作,但需要更多代碼並且功能更少。 – jfriend00

1

感興趣的人在這裏是爲我工作的使用答案節點請求。

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);