繁体   English   中英

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

[英]Node.js app that runs without a user and stores data in a database

我正在尝试构建一个后端基础结构,该基础结构在给定的持续时间内(例如每秒一次)重复命中特定的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 ,然后它将不断运行并将响应数据添加到数据库(位于同一服务器上),而不必担心转到任何页面或以其他方式执行代码?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM