Sunit Gautam
Sunit Gautam

Reputation: 6045

NodeJS: Send POST request at regular intervals

I have the following following post request in index.ejs.

<form action="/getUserInfo" method="POST" id="userDetails">
            Name:<br>
            <input type="text" name="user[name]" value="<%=name%>">
            <br>
            Phone Number:<br>
            <input type="text" name="user[phone]" value="<%=phone%>">
            <br><br>
        </form>
        <button type="submit" form="userDetails">Start App</button>

I need to make this post request at regular intervals of time. What can I use? I considered using cron npm module but how do I use 'require' it in the .ejs file?

Upvotes: 0

Views: 1448

Answers (2)

Saurabh Mistry
Saurabh Mistry

Reputation: 13669

below code will runs after every 10 seconds , send AJAX Post request to server :

setInterval(function(){
   $.ajax({
     url:'/your_url',
     type:'POST',
     data:{
        name:$("input[name='user[name]']").val(),
        phone:$("input[name='user[phone]']").val() 
        },
     dataType:'json',
     success:function(response){ console.log(response);},
     error:function(err){console.log(err);}
   });
},10000);

Upvotes: 2

shikhar
shikhar

Reputation: 140

If you want to set particular timers to your query you can use JavaScript in built methods like:

setTimeout(expression,timeout);
setInterval ( expression, interval );

and even you can try using ajax method

function request(){
        if(response == true){
            // This will unable for the new request

            response = false;
            var req = $.ajax({
                type:"post",
                url:"your-data-url",
                data:{data:"New Request"}
            });

            req.done(function(){
                console.log("Request successful!");
                 //setting true to allow new request after interval
                response = true;
            });
        }

        setTimeout(request(),1000);
    }

    request();

Upvotes: 2

Related Questions