Тестирование простого запроса GET от NodeJS - PullRequest
0 голосов
/ 26 июня 2018

Для целей тестирования я хочу вызвать метод (который выполняет запрос 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 голосов
/ 26 июня 2018

Мой комментарий echo'd более подробно от @ jfiend00.

Теперь, когда у вас есть код, ваша функция testSplunk () будет вызываться только тогда, когда ваш http-сервер получит запрос.Он находится внутри обратного вызова 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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...