Node.js:setInterval函数不起作用

时间:2016-03-10 12:15:41

标签: javascript node.js setinterval

我使用Mockaroo API模拟数据。然后我想在我的数据库中每秒发布一次。因此,当我使用Postman测试post方法时,它运行良好,但是当我尝试使用setInterval()时,它不起作用,并且它不会显示任何错误。我发现我的数据库是空的,因此它不会发布数据。 这是我的代码:

function Post (){ 
/*router.post('/tu',*/
function P(req, res, next) {
    var result;
var inde=["Ariana","Beja"];
    for (var o=0; o<inde.length; o++) {

    client.generate({
    count: 2,
    schema: inde[o]+' indexes'
}).then(function(records) {
     for (var i=0; i<records.length; i++) {
        var record = records[i];
        var c = new models.pollution(record);
         c.save(function(err, records){
        if(err) res.json({error: err});
        result=records;
        });        
    }
})
}
res.json(result);
console.log("success");
}
};
setInterval(Post,1000);

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

看起来您没有调用在“POST”功能中定义的函数“P”。你可以将函数P作为一个 IFFY(立即调用的函数表达式)函数。

function Post (){ 
    /*router.post('/tu',*/
    (function P(req, res, next){
        var result;
        var inde=["Ariana","Beja"];
        for (var o=0; o<inde.length; o++) {

            client.generate({
                    count: 2,
                    schema: inde[o]+' indexes'
            }).then(function(records) {
                for (var i=0; i<records.length; i++) {
                    var record = records[i];
                    var c = new models.pollution(record);
                    c.save(function(err, records){
                            if(err) res.json({error: err});
                            result=records;
                    });        
                }
            })
        }
        res.json(result);
        console.log("success");
    })(req, res, next);
};
setInterval(Post,1000);