测试来自NodeJS的简单GET请求

时间:2018-06-26 03:56:27

标签: node.js httprequest

出于测试目的,我想在服务器创建后立即调用一个方法(执行GET请求)。我有以下代码。

var rp = require('request-promise');
var http = require('http');

var URLSplunk = MY_URL

var headersSplunk = {
    'Authorization': 'Bearer MY_AUTH',
    'Cache-Control': 'no-cache',
    'X-Requested-By': 'BABEL_FISH',
    'client': 'slack'
};

function testSplunk(){
  var optionsSplunk = {
      url: URLSplunk,
      headers: headersSplunk,
      json: true
  };

  rp(optionsSplunk)
      .then(function (resultReply) {
        console.log("Splunk GET success")
        console.log(resultReply)
      })
      .catch(function (error) {
          console.log(`Error: \n${error}`);
      });

}

http.createServer(function (request, response) {
    testSplunk()
}).listen(3000);

console.log('Server started');

我原本希望看到GET结果或错误,但只看到“ Server started”消息。

我想念什么?

1 个答案:

答案 0 :(得分:1)

@ jfiend00对我的评论进行了更详细的回应。

  

您现在拥有代码的方式,仅当HTTP服务器收到请求时,才会调用testSplunk()函数。它位于http服务器requestListener回调内部。因此,您必须向http服务器发送请求以触发该回调,以便调用testSplunk()函数。

在向服务器发出请求之前,程序永远不会调用testSplunt()函数。

将其放置在requestListener回调之后将允许它以您希望的方式执行。

例如

http.createServer(function (request, response) {
    //This function is called when the server gets a request
    //Process request.......
}).listen(3000);

testSplunk();

console.log('Server started');