Я пытаюсь создать средство для ловли веб-крючков, которое ловит несколько веб-крючков с массивами объектов в течение определенного времени (скажем, 3 минуты) и сохраняет все данные в одном массиве json.
Общая идея состоит в том, чтобы объединить несколько веб-крючков с массивами объектов в один массив с тайм-аутом в 3 минуты (по истечении времени веб-крючок должен продолжать прослушивать новые входящие данные), а затем отправить массив объектов в другую функцию. это будет сортировать и публиковать его.
Я использую функцию ниже, чтобы перехватить и объединить все данные в один массив, однако у меня возникают проблемы с установкой временного интервала.
fs.writeFileSync('webhook_arr.json', '[]', function (err, file) {
if (err) throw err;
console.log('Saved!');
});
var data_arr = [];
var wh = app.post('/', (req, res) => {
console.log(' Webhook received!');
let reqbody = JSON.parse(req.body);
console.log("request body objects: " + JSON.stringify(reqbody.data.length));
data_arr = [ ...data_arr, ...reqbody.data ];
console.log("data array length: " + data_arr.length);
fs.writeFileSync('webhoook_input.json', JSON.stringify(data_arr), function (err, result) {
if (err) console.log('error', err);
});
console.log(data_arr);
res.sendStatus(200);
});