在没有用户的情况下运行并将数据存储在数据库中的Node.js应用

时间:2018-08-14 23:54:15

标签: javascript node.js mongodb express server-application

我正在尝试构建一个后端基础结构,该基础结构会在给定的持续时间内(例如每秒一次)重复命中特定的API端点。然后,系统会将响应(或与发布请求等效的任何适当内容)发布到我的数据库,以便以后可以处理数据。

我一直认为Node可以工作,因为我已经在使用Javascript,据我所知,它本质上允许JS在服务器上运行。我想使用MongoDB,因为与PostgreSQL之类的东西相比,更改架构更容易。

使用Express,您可以在获取所有用户时执行类似的操作(此代码来自我制作的api,因此可能不准确):

router.get('/users', function(req, res, next) {
    const userData = {
        _id: false,
        password: false,
        about: false,
        __v: false
    }
    User.find({}, userData, function(err, user) {
        if(err) {
            res.send('Unable to find user');
            console.log(err);
        } else {
            res.json(user);
        }
    });
});

显然,主要的问题是这取决于用户要去执行该代码的路由,我该如何做到这一点,以便Node应用程序(或在可能的情况下进行表达)可以直接放在服务器上,我可以运行文件node app.js,然后它会不断运行并将响应数据添加到数据库(位于同一服务器上),而不必担心转到任何页面或使代码执行?

如果您有任何疑问或想进一步澄清,请告诉我。

1 个答案:

答案 0 :(得分:0)

将要运行的代码存储在可重用的常规函数​​中,而不是将其作为匿名函数与路由处理程序耦合。然后,使用诸如node-cron之类的调度程序或类似的调度程序来定期调用该函数。