 <p>You are not using <code>postdata</code> while sending request:</p> <pre><code>var postdata = "{ \"version\": \"1.0.1\", \"observations\": [ { \"sensor\": \"TISensorTag_temp_01\", \"record\": [ { \"starttime\": \"" + formatDate(new Date()) + "\", \"output\": [ { \"name\": \"ObjTemp\", \"value\": \"" + objtemp + "\" }, { \"name\": \"AmbTemp\", \"value\": \"" + ambtemp + "\" } ] } ] } ] }"; options.data = postdata; //added data to post request request.post(options, callback); </code></pre> <hr> <p>About <strong>Callback</strong>, you have initialized callback and in your case you don't have to pass callback as function parameter. Try use following:</p> <pre><code>async.series([ /*some functions*/ function() { setTimeout(callback, 2000); loop(); } ]) </code></pre>