Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

140
Visualizações
Agregar nuevo objeto a JSON automáticamente

Básicamente, estoy trabajando en este proyecto para frontendmentor y quería ir un poco más allá y hacer que esto muestre las tareas almacenadas y agregue otras nuevas.

 // JSON.data [ { "name": "task1", "todo": "Complete online Javascript course" }, { "name": "task2", "todo": "Jog around the park 3x" } ]
 // Script getData = () => { const xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status ==200) { const myData = JSON.parse(this.responseText) dataUse(myData) saveData(myData) } } xhttp.open("GET", "data.json", true); xhttp.send(); } dataUse = (object) =>{ object.forEach((datas)=>{ const todo = document.createElement('div') todos.appendChild(todo) const input = document.createElement('input') input.setAttribute('type', 'checkbox') input.setAttribute('id', datas.name) input.setAttribute('class', 'checks') todo.appendChild(input) const label = document.createElement('label') label.setAttribute('for', datas.name) label.setAttribute('class', `${datas.name} tasks`) todo.appendChild(label) const span = document.createElement('span') label.appendChild(span) const paragraph = document.createElement('p') paragraph.innerHTML = datas.todo label.appendChild(paragraph) }) } getData()

Actualmente, el código anterior carga los datos y luego procede a crear el elemento necesario y coloca la información en el lugar correcto.

Lo que necesito ahora es hacerlo para que guarde un nuevo objeto en el archivo JSON (cuando la entrada tiene un valor (creo que puedo calcular esta parte yo mismo)) automáticamente y luego procede a mostrarlo como lo hace la función dataUse. Esto es lo que traté de hacer:

 let newData = { name: "task3", todo: "Water the plants" } const fs = require('fs') const saveData = (object) =>{ const finished = (error)=>{ if(error){ console.error(error); return } } object.push(newData) const jsonData = JSON.stringify(object, null, 2) fs.writeFile('data.json', jsonData, finished) }

Esto no parece funcionar, pero cuando trato de presionar newData sin intentar volver a escribir el archivo y console.log, muestra todos los objetos, incluido el nuevo. Entonces, ¿cómo hago que esto funcione? o hay una mejor manera de hacer esto?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Creo que lo que estás buscando es fs.appendFile

 fs.appendFile("data.json", jsonData, finished);

Tengo un repositorio que usa este formato general como referencia: https://github.com/cireneirbo/iCanRead-iCanWrite-imFS/blob/main/main.js

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda