【问题标题】:How do I manipulate account balance in an investment web application with NodeJs?如何使用 NodeJs 在投资 Web 应用程序中操作账户余额?
【发布时间】:2020-08-10 13:18:20
【问题描述】:

我正在使用 NodeJS 和 MongoDB 开发一个投资 Web 应用程序项目。我已经致力于允许用户进行投资,但我不知道如何处理帐户余额部分。用户投资后,账户余额应在 3 天后更新。

这是我上面描述背后的一个简单数学:

  1. 用户投资 200 美元。
  2. 3 天后,用户获得其投资的 10% - 220 美元
  3. 第三天,账户余额从 0 变为 220。

NodeJs 可以做到吗,如果可以,我该怎么做?

【问题讨论】:

  • 你想做什么?那不需要轮询吗?即不断检查变化
  • 如果用户投资一定金额,您必须将这些信息保存在您的数据库中。我建议使用 sql 触发器,它将在 3 天后触发并更新该数量。

标签: javascript node.js mongodb express


【解决方案1】:

您可以简单地运行一个每 3 天执行一次 mongodb 查询的 cron 作业

这里是 node.js 的 cron 作业:https://www.npmjs.com/package/node-cron

var cron = require('node-cron');
 

cron.schedule('0 0 */3 * *', () => {
  // this function is gonna be executed every 3rd day at midnight
  Model.update({ ... })
});

https://crontab.guru/#0_0_*/3_*_*

每月第 3 天的 00:00。

【讨论】:

  • 感谢您的评论。这真的很有帮助
  • @Danicoco 我很高兴能帮到你
【解决方案2】:

您无需更改帐户余额。只需存储用户在特定日期投资的投资金额。然后,当您需要知道余额时,只需计算从现在开始的时间差即可。

公司政策可能是在月底、3 个月、6 个月或每年重新计算余额。在那一天,您可以更新帐户余额并更新日期。

所以,你可以:

invested_day, capitalized_day, account_balance

关于 cron-job 的 Google,您需要它在预定日期更新商店。

【讨论】:

    【解决方案3】:

    最简单的解决方案是存储投资日期到数据库,每当用户访问应用程序时向他显示加载程序并获取系统的当前日期,并使用时刻或您自己将其与存储的日期进行比较如果相差 3 天,则更新日期和金额。 但是如果用户在 9 天或 10 天后访问,那么请记住以 3 的倍数计算天数并相应地增加数量。 另外请记住服务器和客户端的时区可能不同,所以也要注意它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-17
      • 2018-01-12
      • 1970-01-01
      相关资源
      最近更新 更多