Estoy tratando de escribir/agregar datos en un archivo json (por ejemplo, para cada solicitud, se agrega un nuevo json en el archivo json) estoy usando Express.js. Soy nuevo en todo esto, así que no sé qué hacer. Estoy usando una solicitud POST, esto es lo que obtuve hasta ahora. Sé que es un gran desastre catastrófico, raspé todo lo que podía ayudarme y lo reuní todo. Estoy tan perdido. Gracias por tu ayuda !
app.post('*/', function(req, res) { res={ first_name: req.body.first_name, last_name: req.body.last_name, reponse1: req.body.reponse1, reponse2: req.body.reponse2, }; JSON.stringify(res); var body = { table: [] }; body.table.push(res); filePath = __dirname + '/data.json'; req.on('data', function(data) { body += data; }); req.on('end', function (){ fs.appendFile(filePath, body, function() { res.end(); }); });});
En su código, veo muchos errores. En primer lugar, no debe asignar res = { } . En segundo lugar, encadena los datos JSON como se muestra a continuación. También te sugiero que primero revises algunos tutoriales de Node.js. Puede acceder a https://www.tutorialspoint.com/nodejs/ o https://www.codementor.io/nodejs/tutorial .
Para su requerimiento, simplemente puede usar el siguiente código:
const express = require('express') const app = express() const bodyParser= require('body-parser') const fs = require('fs') app.use(bodyParser.json()) app.use(bodyParser.urlencoded({ extended: false })) app.post('/', function(req, res){ var body = { first_name: req.body.firstName, last_name: req.body.lastName } filePath = __dirname + '/data.json' fs.appendFile(filePath, JSON.stringify(body), function(err) { if (err) { throw err } res.status(200).json({ message: "File successfully written" }) }) }) app.listen(3000,function(){ console.log("Working on port 3000") })