Node.js http request

I am a beginner with node.js, and I'm not seeming to get this to work.

 function sleep(milliSeconds){
    var startTime = new Date().getTime();
    while (new Date().getTime() < startTime + milliSeconds); 
}

var isRequestComplete = false;
while(isRequestComplete == false){
console.log("in make request");
var querystring = require('querystring');


var data = querystring.stringify({
      username: 'username',
      password: 'password',
      action: 'convert',
      voice: 'engfemale1',
      text: 'stuff and things, this should take longer than one request.'
    });

var options = {
  host: 'ws.ispeech.org',
  port: 80,
  path: '/api/rest/1.5',
  method: 'POST',
  headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Content-Length': data.length
    }
};

var http = require('http');
var req = http.request(options, function(res) {
    console.log("got response");
    res.setEncoding('utf8');
    res.on('data', function (chunk) {
        console.log("body: " + chunk);
        if(chunk.indexOf("finished") != -1){
            isRequestComplete = true;
        }
    });
});


req.on('error', function(e) {
  console.log('problem with request: ' + e.message);
});
req.write(data);
req.end();
console.log("completed");
sleep(5000);
}

For whatever reason the http request does not send a response back, ever. Unless the code is fully finished, so in the while loop I never get a response back. Thus the loop never ends. The username and password in my program are inputted, here they are not for confidentiality. Thanks for reading.

I recommend you watch this video

http://nodetuts.com/tutorials/19-asynchronous-iteration-patterns.html#video

this is NOT the way to get your code to sleep! A while loop isn't "sleeping" it's processing as fast as it can. In you case it's grabbing date after date after date trying to get to your destination.

take a look here to see how this *should work. http://nodejs.org/api/http.html

Use recursion and / or setTimeout instead of while loop and your sleep function. Then it should works - some basic example here:

var func = function () {

    // your request here

   if (!isRequestComplete) {

       setTimeout(func, 5000);

   }

}

Have a look at the very first http-server example on http://nodejs.org/.

You have to create an http-server that listens for requests from browsers that arrive at the specified IP-Address:Port. Once a request arrives, the server send the specified response to the browser.