gpt4 book ai didi

javascript - meteor js创建mongodb数据库钩子(Hook)以固定间隔存储来自API的数据

转载 作者:行者123 更新时间:2023-12-03 11:13:32 27 4
gpt4 key购买 nike

tldr - 使用 API 中的数据创建“专有数据库”的最佳模式是什么?在本例中,使用 Meteor JS 和 mongo db 中的集合。

步骤1. 平API2.每隔一段时间向Mongo插入数据

在 lib/collections.js 中

Prices = new Mongo.Collection("prices");

基本股票 API 调用,在 server.js 中:

Meteor.methods({
getPrice: function () {
var result = Meteor.http.call("GET", "http://api.fakestockprices.com/ticker/GOOG.json");
return result.data;
}
});

假设返回的 JSON 干净整洁,我想存储整个对象(如何操作返回的内容并不重要,存储返回值才是)

我们可以在上面的Meteor.method函数中操作数据,但是我们应该这样做吗?在Angular中,服务用于调用API,但建议模块化并将API调用保留在自己的函数中。让我们借用上面的 Meteor.callgetPrice

假设这也在 server.js 中完成(请更正)。

Meteor.call("getPrice", function(error, result) {
if (error)
console.log(error)

var price = result;

Meteor.setInterval(function() {
Prices.insert(price);
}, 1800000); // 30min

});

一旦进入数据库,就可以建立一个发布/订阅,我将省略它和 link to this overview .

最佳答案

您可能想看看 synced-cron package

使用 cron 作业非常简单,只需调用您的方法即可:

// server.js

SyncedCron.start();

SyncedCron.add({

name: "get Price",

schedule: function(parser){
return parser.text('every 30 minutes');
},

job: function(){
return Meteor.call("getPrice");
}
});

然后在 getPrice你可以做var result = HTTP.call(/* etc */);Prices.insert(result); 。正如您所指出的,您当然需要一些额外的检查。

关于javascript - meteor js创建mongodb数据库钩子(Hook)以固定间隔存储来自API的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27447813/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com