SetInterval in nodejs

I am making an http request that should start every minute. Below is my code

var express = require("express");
var app = express();
var recursive = function () {
    app.get('/', function (req, res) {
        console.log(req);
        //Some other function call in callabck
        res.send('hello world');
    });
    app.listen(8000);
    setTimeout(recursive, 100000);
}
recursive();

According to the code above, I should get a response every one minute. But I get an error: listening to EADDRINUSE. Any help on this would be really helpful.

+4
source share
2 answers

This code processes HTTP requests every minute:

var http = require('http');

var options = {
  host: 'example.com',
  port: 80,
  path: '/'
};
function request() {
  http.get(options, function(res){
    res.on('data', function(chunk){
       console.log(chunk);
    });
  }).on("error", function(e){
    console.log("Got error: " + e.message);
  });
}
setInterval(request, 60000);
+6
source

EADDRINUSE error because you cannot start the server in the same port twice

This will work as follows:

var express = require("express"),
    app = express(),
    recursive = function (req, res) {
        console.log(req);
        //Some other function call in callabck
        res.send('hello world');
        setTimeout(recursive, 100000);
    };
    app.get('/', recursive);
    app.listen(8000); 
}
+3
source

All Articles