¿Cómo agregar datos en un archivo JSON usando Node.js?

JSON significa Notación de objetos Javascript. Es una de las formas más fáciles de intercambiar información entre aplicaciones y, por lo general, los sitios web/API la utilizan para comunicarse. Para comenzar con Node.js, consulte este artículo.

En primer lugar, debe asegurarse de que el archivo JSON que espera no consuma una gran cantidad de memoria. Para los datos que se estima que consumen alrededor de 500 MB, este método no será eficiente y debería considerar usar un sistema de base de datos.

  1. Node.js tiene un módulo incorporado llamado fs , que significa Sistema de archivos y permite al usuario interactuar con el sistema de archivos de forma modelada. Para usarlo, escriba el código a continuación en su programa de servidor.

    const fs = require('fs');

    La documentación para el módulo fs se puede encontrar aquí .

  2. Podemos comenzar creando un archivo JSON, que contendrá una identificación, un nombre y una ciudad para este ejemplo. Tenga en cuenta que puede tener tantos pares clave-valor como desee, pero estamos usando tres aquí para empezar. 

    {
        "id": 1,
        "name": "John",
        "city": "London"
    }

    Nombremos este archivo JSON como data.json.

  3. Ahora que tenemos un archivo JSON para escribir, primero crearemos un objeto JavaScript para acceder al archivo. Para esto, usaremos fs.readFileSync() que nos dará los datos en formato sin formato. Para obtener los datos en formato JSON, usaremos JSON.parse(). Por lo tanto, el código en nuestro lado del servidor se verá así:

    var data = fs.readFileSync('data.json');
    var myObject= JSON.parse(data);
  4. Ahora que tenemos nuestro objeto listo, supongamos que tenemos un par de datos clave-valor que queremos agregar:

    let newData = {
        "country": "England"
    }  

    Necesitamos usar nuestro objeto (es decir, myObject) para agregar estos datos. Haremos esto usando el método .push() de la siguiente manera:

    Nota: Para usar la función push(), los objetos de datos en el archivo json deben almacenarse en una array. Si el archivo JSON está vacío o tiene un solo objeto sin array, push() dará un error.

    myObject.push(newData);
  5. Para escribir estos nuevos datos en nuestro archivo JSON, usaremos fs.writeFile() que toma el archivo JSON y los datos que se agregarán como parámetros. Tenga en cuenta que primero tendremos que volver a convertir el objeto en formato sin procesar antes de escribirlo. Esto se hará usando el método JSON.stringify() .

    var newData = JSON.stringify(myObject);
    fs.writeFile('data.json', newData, err => {
        // error checking
        if(err) throw err;
        
        console.log("New data added");
    });   

    Ahora nuestro archivo data.json se vería así:

    {
        "id": 1,
        "name": "John",
        "city": "London",
        "country": "England"
    }

Ejemplo: El código index.js para el ejemplo anterior.

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");
});

Producción:

Publicación traducida automáticamente

Artículo escrito por greenblade29 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *