json - 如何将json数据追加到文件中?

标签 json node.js

var jsonfile = require('jsonfile');
var data = require('./data.json');
var items = data.items;
data.items[items.length] = {
  msg: "A new message"
};



jsonfile.writeFile('./data.json', data, {
  spaces: 2
}, function(err) {
  console.error(err);
});
{
  "items": [ {
    "name": "Tom", "time": "7.4.2016 3:13PM", "msg": "message1"
  }
  ,
  {
    "name": "Tom", "time": "7.4.2016 3:13PM", "msg": "message2"
  }
  ,
  {
    "name": "Tom", "time": "7.4.2016 3:13PM", "msg": "message3"
  }
  ]
}

我需要使用node.js维护一个json文件,其数据样式类似于上面的代码。我应该不断地将对象添加到“items”数组中。但是,如果我采用上面代码中的方法,每次要添加新项目时,我都必须加载并保存整个数据。
所以我的问题是:
有没有一种方法可以直接操作json文件,而不需要加载和保存整个数据的麻烦(就像处理数据库系统一样)?

最佳答案

如果您发现自己正在加载和保存“一大堆数据”,并且正在寻找附加 json 的方法,则表明您需要数据库。

有典型的 mongodb 等...服务器。但如果您的需求很简单,您也可以查看简单的嵌入式数据库,例如 NEDB 。这个(和其他嵌入式数据库)是基于文件的数据库,它们已经为您解决了问题。没有理由“像数据库系统”。只需使用一个:)

如果您必须使用文件方法,另一种可能性是编写单个文件,或者如果文件太多,那么您可以编写项目的“页面”。但可行性取决于您的阅读模式。

但是,如果您处于这种状态并提出这些问题,那么数据库可能更合适。

关于json - 如何将json数据追加到文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38799459/

相关文章:

node.js - Nodejs : Can't set headers after they are sent

javascript - 谷歌 OAuth2 + react 谷歌登录 : "redirect_uri_mismatch" when trying to retrieve a refresh token

json - Grails - 如何让域类将 JSON 转换为域属性

使用 CSS 目标选择器在 JSON 数组上向下钻取 HTML 列表

javascript - 如何将json与typescript接口(interface)映射?

javascript - Nodejs 从 Controller 调用 Controller 给出 TypeError : res. json 不是函数

javascript - 如何忽略 NestJS 中特定路由的拦截器

ajax - 两个ajax请求完成时执行回调的最简单方法

java - 将 ArrayList 转换为 json 对象

sql - 使用 Postgres,如果为 NULL,我如何使用 UPDATE 插入新的 jsonb 值,或者如果值已经存在,如何修改 json?