2016-06-07 51 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);