У меня есть этот JSON на сервере: [{"a":1}, {"a":2}] и мне интересно, можно ли вообще добавить объект в конце, вместо того, чтобы переписать весь файл на сервере. Я сделал обходной путь, без скобок и добавил их после загрузки с сервера.
newObj= {'a':3};
fs.appendFile(theServerFile, ',' + newObj, ...) ;
Редактирование данных JSON в строке — крайне плохая идея.
Не говоря уже о проблемах с блокировкой файлов.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я бы сделал следующее:
const fs = require('fs');
fs.readFile('./jsonFile.html', function read(err, data) {
if (err) {
throw err;
}
processFile( JSON.parse(data) );
});
function processFile(data) {
data.push(newObj);
fs.writeFileSync('./jsonFile.html', data);
}
Получите текущий контент, обновите его и напишите снова.
Надеюсь это поможет!
в вашем ответе есть две проблемы: 1. вам нужно проанализировать данные файла в объект JSON перед обработкой. 2. если вы добавите данные в исходный файл таким образом, он добавит второй набор данных в исходный файл.
Ваш код добавляет обновленный JSON в файл, а не перезаписывает его.
ну, теперь вы не ответили на исходный вопрос об использовании fs.appendFile :)
Одним словом, нет. Весь JSON придется читать, анализировать, обновлять и записывать обратно в файл. В противном случае, скорее всего, будет получен неверный JSON.