NodeJS: отправлять POST-запрос через равные промежутки времени - PullRequest
0 голосов
/ 08 февраля 2019

У меня следующий следующий почтовый запрос в 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>

Мне нужно сделать этот почтовый запрос через регулярные промежутки времени.Что я могу использовать?Я подумал об использовании модуля cron npm, но как мне использовать 'require' в файле .ejs?

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

ниже код будет запущен через каждые 10 секунд, отправьте запрос AJAX Post на сервер:

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);
0 голосов
/ 08 февраля 2019

Если вы хотите установить определенные таймеры для вашего запроса, вы можете использовать JavaScript в встроенных методах, таких как:

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

и даже вы можете попробовать использовать метод ajax

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();
...