我有一个express server服务器,我需要从firebase获取新的集合,该集合的格式为data-${date}。如何使用节点调度(或其他方法)来完成此任务。代码主要是格式
data-${date}
let date=new Date(); app.get("/fetch",(req,res) => { // fetch data from firestore db `data-${date}` }
tldr:date变量需要在每个午夜更新
u2nhd7ah1#
您可以在Node Js Express Server中的每个午夜更新日期,以便从新集合中获取
const express = require("express"); const admin = require("firebase-admin"); const moment = require("moment"); const app = express(); admin.initializeApp({ credential: admin.credential.cert("path/to/serviceAccountKey.json"), // Replace with the path to your service account key file }); const db = admin.firestore(); const baseCollectionName = "data"; let currentDate = moment().format("YYYY-MM-DD"); const fetchData = () => { const collectionName = `${baseCollectionName}-${currentDate}`; const collectionRef = db.collection(collectionName); // Perform your desired operations on the collection here (e.g., fetching data) // ... }; // Function to update the currentDate variable at midnight const updateDateAtMidnight = () => { const nextMidnight = moment().endOf("day"); const duration = moment.duration(nextMidnight.diff(moment())); const millisecondsUntilMidnight = duration.asMilliseconds(); setTimeout(() => { currentDate = moment().format("YYYY-MM-DD"); updateDateAtMidnight(); }, millisecondsUntilMidnight); }; updateDateAtMidnight(); app.get("/fetch", (req, res) => { fetchData(); }); app.listen(3000, () => { console.log("Server started on port 3000"); });
gpfsuwkq2#
节点调度程序与许多其他调度程序一样,基于cronJobs。因此需要定义一个cronSettings
const cronSettings = '0 0 * * *' // attach your function to the scheduler const scheduledJob = schedule.scheduleJob(cronSettings , functionToUpdate)
您似乎使用了express端点,如果您还想手动触发,这是可以的。
const functionToUpdate = (req, res){ // doing something } app.get("/fetch",functionToUpdate)
希望能有所帮助巴林特
2条答案
按热度按时间u2nhd7ah1#
您可以在Node Js Express Server中的每个午夜更新日期,以便从新集合中获取
gpfsuwkq2#
节点调度程序与许多其他调度程序一样,基于cronJobs。
因此需要定义一个cronSettings
您似乎使用了express端点,如果您还想手动触发,这是可以的。
希望能有所帮助
巴林特