首页 > 解决方案 > 不使用前端 Nodejs 的呼叫服务器端路由的最佳方式

问题描述

我在后端有一条路线,我想每隔 X 次调用一次。现在我正在使用 ajax 从客户端的设置间隔函数进行调用:

setInterval(function() {
    $.ajax({
        method: 'GET',
        url: '/api'
    })
        .done(function() {})
        .fail(function(err) {
            console.log(err);
        });
}, 60000);

我的路线:

router.get('/api', async (req, res) => {
    console.log('api called')
});

问题在于,这仅在有人在浏览器中打开应用程序时才有效。在不依赖前端的情况下在后端进行此类调用的最佳方式是什么?

标签: javascriptnode.jsexpress

解决方案


您可以从服务器本身进行内部调用,而不是从客户端内部调用。它将遵循完全相同的逻辑(带有间隔),但代码将在后端:)

此外,如果您希望它更明确地定义,您可以使用类似node-cron 的东西:

cron.schedule('*/2 * * * *', () => {
  console.log('running a task every two minutes');
});

推荐阅读