如何使消息在我的应用程序中持久化?

Posted

技术标签:

【中文标题】如何使消息在我的应用程序中持久化?【英文标题】:How could I make messages persistent in my app? 【发布时间】:2021-06-29 03:57:48 【问题描述】:

我想让在我的小型消息传递应用程序上发送的消息持久化。消息从前端解析到 Node、Socket io 和 Express 后端。

一位朋友建议我使用 Enmaps (https://enmap.evie.dev),但由于我使用 Heroku 进行托管,所以这永远无法工作。然后我被建议使用 Repl.it 的数据库功能,但我不喜欢他们的服务,这让我很难在本地进行测试。

有人告诉我不要使用 localStorage 来存储消息,因为这是“不好的做法”(?)

我可以使用哪些其他方法来存储消息?为什么以这种方式使用 localStorage 是不好的做法?

【问题讨论】:

【参考方案1】:

MongoDB 有一个非常简单的数据库,有一些免费的容量,您可以在 NodeJs 服务器中使用它来进行测试(以及用于实际应用程序)。

【讨论】:

感谢您的回答!我去看看 MongoDB 祝你好运!我没有太多地接触 localStorage,但我可以理解为什么这是一个不好的做法。并非所有浏览器都支持它,并且某些浏览器会在网站终止时删除 localStorage(例如我 iPad 上的 Safari)。如果相同的数据应该与其他设备相同,也可能会出现潜在的问题。例如,如果存在网络错误或 localStorage 无法存储数据,则 localStorage 可能会变得不同,并且由于所有消息都存储在本地,因此即使刷新,某些消息也可能永远无法到达 数据库或简单地使用 fs.writeFile() (不建议将其用于商业用途来存储消息所在的个人数据)可以完美运行。我将 fs.writeFile fs.readFile 用于我目前使用 WebSockets、Express 和 React 开发的功能原型必须持久的所有内容。如果我将其用于商业用途,那么像 MongoDB 这样的数据库是 100%,因为它允许更轻松的管理并为您的数据增加另一个级别的安全性。对不起自己是啄木鸟哈哈? 我想我可能只会使用 fs,我不想学习一种全新的技术来存储消息 祝你好运!如果您打算将其制成商业产品,请确保您使用数据库来存储消息:)

以上是关于如何使消息在我的应用程序中持久化?的主要内容,如果未能解决你的问题,请参考以下文章

如何使 QToolTip 消息持久化?

如何在C#中使用MSMQ

如何使 SMTP 在 C# 中进行身份验证

Grails 命令对象自定义验证消息代码

如何在我的无处不在的容器中获取所有可用的持久存储?

Linux 上的 Azure Web 应用程序 - 使 Conda 安装持久化