NodeJS:定期发送POST请求

时间:2019-02-08 18:11:52

标签: javascript node.js post ejs

我在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模块,但是如何在.ejs文件中使用'require'?

2 个答案:

答案 0 :(得分:2)

下面的代码将每10秒运行一次,向服务器发送AJAX发布请求:

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

答案 1 :(得分:1)

如果您要为查询设置特定的计时器,则可以在内置方法中使用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();