node.js - 如何使用来自 mongodb 的时间戳在特定时间触发函数?
问题描述
假设我在我的 MongoDB 中存储了一些时间戳,每个时间戳都表示应该运行某个特定函数的时间。
我不确定什么是正确的方法,因为我是后端开发的新手。
Mongo 数据结构是这样的(这只是一个例子):
{id: 115155, userId: 152115, timestamp: 13-09-2019:15:30:00}
在这个特定的时间我想触发一个功能:
someFunction(eventId, userId){ ...something here }
解决方案
您需要将您从 mongodb 获得的时间戳格式更改为这样的格式 - “2019 年 9 月 13 日 18:39:40”或“2019-01-01 00:00:00”。然后您需要使用此 Date.parse() 解析从 mongodb 获得的时间戳
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse
完成后,您需要获取时间戳和当前时间之间的差异,并在 setTimeout() 函数中使用该差异,该函数需要 2 个参数 -要运行的函数和以毫秒为单位的时间
let timediff = new Date() - Date.parse("2019-09-13 18:54:50");
setTimeout(function() {
console.log("Called when current time = mongodb timestamp");
}, timediff);
推荐阅读
- python - Python从服务器上的txt读取行范围并将它们写入本地文件
- c++ - 如何通过 Qt c++ gui 应用程序访问 USB 摄像头
- python-3.9 - 如何在django中删除多对多关系中的记录?
- node.js - Firebase - 错误:16 UNAUTHENTICATED:请求具有无效的身份验证凭据。预期的 OAuth 2 访问令牌、登录 cookie 或其他有效的 au
- python - 无法设置vscode练习python
- javascript - 如何在下一个js中设置背景以覆盖文本?
- directx - 为什么使用 CopyResource 在 ID3D11Devices 之间共享纹理时会出现显存泄漏?
- sql - 根据 Google Big Query 中的条件选择上一个组值
- node.js - 我应该测试服务还是路线?
- reactjs - TypeError:PanelReview() 得到了一个意外的关键字参数“panelmember”