@CoCoCoder
Новичок в веб-программировании,только учусь. :)

Как дополнить JSON файл?

Есть фрагмент кода:
app.post("/infoPackage", jsonParser, function (request, response) { // создал канал типа POST для передачи объекта из формы по нажатию кнопки
    receivedPackage = request.body; //принял объект после нажатия кнопки
    let id = `f${(~~(Math.random()*1e8)).toString(16)}`; //сгенерировал рандомный ID-шник 
    receivedPackage['id'] = id; //добавил ID товару
    let sendObject = JSON.stringify(receivedPackage); //преобразовал в строку для записи в JSON формат
    if(!request.body) return response.sendStatus(400);
    fs.appendFile('C:/delithings/logs/goods.json', sendObject, function(){}); //добавил его в конец документа с такими же объектами
    response.json(receivedPackage); //вернул объект на сайт
});

Но в итоге файл хранит данные в таком виде:
{"name":"214354568787","size":"2345678909","price":"87654324356789765","kind":"л","type":"Молочные продукты","value":"11","id":"f150ea9"}{"name":"214354568787","size":"2345678909","price":"87654324356789765","kind":"л","type":"Молочные продукты","value":"11","id":"f3dfcb62"}

То есть, нет ни массива, который бы заключал в себя все объекты, ни запятых между "товарами", отсюда идут ошибки, ломающие всю работу и кладущие сайт при попытке парсинга значений в таблицу. Как быть и правильно оформить запись в JSON?
  • Вопрос задан
  • 424 просмотра
Решения вопроса 1
@Tshmt
fs.readFile('C:/delithings/logs/goods.json', function (err, data) {
    let json = data && data.length ? JSON.parse(data) : []
    json.push(sendObject)
    fs.writeFile('C:/delithings/logs/goods.json', JSON.stringify(json))
})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы