我正在尝试构建一个后端基础结构,该基础结构会在给定的持续时间内(例如每秒一次)重复命中特定的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
,然后它会不断运行并将响应数据添加到数据库(位于同一服务器上),而不必担心转到任何页面或使代码执行?
如果您有任何疑问或想进一步澄清,请告诉我。
答案 0 :(得分:0)
将要运行的代码存储在可重用的常规函数中,而不是将其作为匿名函数与路由处理程序耦合。然后,使用诸如node-cron之类的调度程序或类似的调度程序来定期调用该函数。