如何使用 Node.js 在 JSON 文件中添加数据?
JSON代表 Javascript 对象表示法。它是在应用程序之间交换信息的最简单方法之一,通常由网站/API 用于通信。要开始使用 Node.js,请参阅这篇文章。
首先,您需要确保您所期望的 JSON 文件不会消耗大量内存。对于估计消耗大约 500MB 的数据,这种方法效率不高,您应该考虑使用数据库系统。
Node.js 有一个名为fs的内置模块,它代表文件系统,使用户能够以建模的方式与文件系统进行交互。要使用它,请在您的服务器程序中键入以下代码。
const fs = require('fs');
fs 模块的文档可以在这里找到。
我们可以从创建一个 JSON 文件开始,该文件将包含一个 id、一个名称和一个城市。请注意,您可以拥有任意数量的键值对,但我们在这里使用三个作为开始。
{ "id": 1, "name": "John", "city": "London" }
让我们将此 JSON 文件命名为 data.json。
现在我们有一个要写入的 JSON 文件,首先我们将创建一个 JavaScript 对象来访问该文件。为此,我们将使用fs.readFileSync()以原始格式为我们提供数据。要获取 JSON 格式的数据,我们将使用JSON.parse() 。因此,我们服务器端的代码将如下所示:
var data = fs.readFileSync('data.json'); var myObject= JSON.parse(data);
现在我们已经准备好对象,假设我们有一个要添加的键值对数据:
let newData = { "country": "England" }
我们需要使用我们的对象(即 myObject)来添加这些数据。我们将使用 .push() 方法来执行此操作,如下所示:
注意:要使用 push()函数,json 文件中的数据对象必须存储在数组中。如果 JSON 文件是空的或者有一个没有数组的对象, push() 会报错。
myObject.push(newData);
要将这些新数据写入我们的 JSON 文件,我们将使用fs.writeFile() ,它将 JSON 文件和要添加的数据作为参数。请注意,在写入之前,我们必须首先将对象转换回原始格式。这将使用JSON.stringify()方法完成。
var newData = JSON.stringify(myObject); fs.writeFile('data.json', newData, err => { // error checking if(err) throw err; console.log("New data added"); });
现在我们的 data.json 文件看起来像这样:
{ "id": 1, "name": "John", "city": "London", "country": "England" }
示例:上述示例的 index.js 代码。
index.js
// Requiring fs module
const fs = require("fs");
// Storing the JSON format data in myObject
var data = fs.readFileSync("data.json");
var myObject = JSON.parse(data);
// Defining new data to be added
let newData = {
country: "England",
};
// Adding the new data to our object
myObject.push(newData);
// Writing to our JSON file
var newData2 = JSON.stringify(myObject);
fs.writeFile("data2.json", newData2, (err) => {
// Error checking
if (err) throw err;
console.log("New data added");
});
输出: