@rebyatyonok
Новичок

Как записать полученный через AJAX объект в уже существующий JSON?

Всем добрый день! Вопрос о взаимодействии Node.js, Express и JSON.
История такая: у меня есть несколько форм, значения которых я хочу сохранить в JSON. То есть ввожу в форму что угодно, жму кнопку сохранить и они улетают на сервер в виде такого вот объекта:
{
  "name": "345678",
  "mail": "98765678233123123",
  "phone": "900213123",
  "date": "-----",
  "summ": "-----",
  "visits": "-----",
  "active": "-----"
}

Объект я отсылаю на сервер таким вот образом:
$('.modal__window__right__save div').click(function(){
            $.ajax({
                url: "http://localhost:3000",
                type: "POST",
                data: userStr,
                success: function() {
                    console.log('data was sent');
                },
                dataType: 'JSON'
            });

сервер этот код принимает вот этим вот:
app.post('/', function (req, res, next) {
    req.addListener('data', function(postDataChunk) {

        // Может быть ошибка где то тут? 
        let postData = JSON.parse(postDataChunk);
        console.log('Новые данные получены');
        
        // Или где то тут? 
        jsonfile.writeFileSync('build/data/user.json', postData, {spaces: 2}, function(err){
            console.log(err);
        });
    });
    next();
});

и должен записать его в уже существующий JSON-массив вида:
{
  "users": [
       // here
   ]
}

Вся проблема в том, что данный код работает, но каждый раз в итоге перезаписывает JSON-целиком.
То есть получается вместо объекта users с многими вложенными объектами, один объект что пришел с клиента(первый самый код).
Где моя ошибка - понять не могу. Если найдете ее (или их) и объясните что и как - буду очень благодарен.
  • Вопрос задан
  • 354 просмотра
Решения вопроса 1
@RidgeA
потому что fs.writeFileSync открывает файл в режиме "w" по умолчанию
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы