出于测试目的,我想在服务器创建后立即调用一个方法(执行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
”消息。
我想念什么?
答案 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');