我正在基于Node构建一个应用程序.js在Heroku上运行.

该应用程序使用了一个JSON文件,目前该文件正在与应用程序的其余部分一起推送,我们正在对其进行读写,如下所示:

var channelsList = require("./JSON/channels.json");

...

fs.writeFile("JSON/channels.json", JSON.stringify(channelsList), onCleaned);

这对原型来说已经奏效了,但我知道我们需要使用一个数据存储,否则当Dyno睡眠或我推动更改时,更改不会持续.

我曾读到,与蒙古ABS建立数据库可能是一个不错的 Select ,但我想知道是否还有其他 Select ,因为这似乎比必要的更复杂.这对我来说是一个新的领域,所以如果Mongo是一条发展之路,我也会很感激你的指点.

我们还希望为一周中的每一天编写新文件作为备份.

干杯

推荐答案

Disclosure: I am the node.js platform owner at Heroku.

You will need to bring the state out of your application.要替换 node 应用程序中的JSON文件,您应该看看mongo、s3和redis:

  • mongo:功能丰富且速度合理
  • s3:最佳映射到"文件系统"存储的抽象(注意权限)
  • redis:简单快速

就个人而言,对于简单的用例,我更喜欢redis(听起来你的可能符合条件).你可以直接输入JSON并解析出来.或者,最流行的redis client for node为简单哈希提供了友好的界面:

https://github.com/mranney/node_redis#friendlier-hash-commands

Redis,mongo,s3:

Mongodb相关问答推荐

如何在Mongo Aggregate Query中创建集合的对象ID数组,并在列表中查找另一个集合中的ID

在MongoDB中是否可以按递增顺序更新多个文档?

在MongoDB中获取所有帖子时如何获取相关用户信息

匹配/筛选/投影对象中数组中数组中的嵌套字段

Mongoose 排除数组中包含特定嵌套对象的文档

MongoDB 对特定搜索查询的响应时间较长

将子元素的数组值提取到 mongodb 中的单个数组中?

按数组mongodb中的第一个元素排序

(MongoDB)在同一管道中结合联合和交集

MongoDb 聚合未正确分组

MongoDB 聚合使用 $match 和 $expr 和数组

从 PHP 打印 MongoDB 日期

如何使用 Spring Data MongoDB 通过 GridFS ObjectId 获取二进制流

Mongo 可尾游标与 Redis 发布/订阅

不能在模块外使用 import 语句

ZonedDateTime 与 MongoDB

如何对连接到 mongo 的方法进行单元测试,而不实际连接到 mongo?

为什么使用 Redis 而不是 MongoDb 进行缓存?

无法将 Mongoose 连接到 Atlas

MongoMapper 和迁移