Как сохранить данные в файл JSON

У меня есть простое приложение для записи выполненных услуг, но я не хочу использовать базу данных.
у меня есть data.JSON который я получил в чистом JS ->

fetch('./data/data.json')
.then(res => res.json())
.then(data => {/*fetched data appended into html*/}) 

Поэтому, когда я хочу добавить новую запись, я не знаю, как сохранить новый объект в json. Я искал какой-то учебник, но все было для Node.js, php,...

<form id ="newRow">
 // ...
</form>


<script>
document.getElementById('newRow').addEventListener('submit', addPost);

function addPost(e) {
    e.preventDefault();

    let name = document.getElementById('fname').value;
    let date = document.getElementById('fdate').value;
    let service = document.getElementById('fservice').value;
    let price = document.getElementById('fmoney').value;
    let desc = document.getElementById('fdesc').value;

    const user = {
        id: Date.now(),
        name: name,
        date: date,
        service: service,
        price: price,
        desc: desc
    }
    document.forms[0].reset();
}
</script>

1 ответ

Решение

Клиентский JS не может записывать файлы на сервере.

Если бы это было возможно, то любой мог бы записывать файлы на любой сервер. Домашняя страница Google будет перезаписываться новым элементом вандализма или фишинга каждые пять секунд.

Клиентский JS может делать HTTP-запросы. Вам нужен серверный код, чтобы считывать данные с них и обрабатывать их (обычно сначала с подходящим уровнем аутентификации / авторизации). Это вернет вас к Node.js / PHP / и т. Д.

NB: используйте реальную базу данных, из которой вы генерируете JSON с серверным кодом. Не пытайтесь создать свою собственную БД из файлов JSON и кода записи файлов. Отсюда и условия гонки.

Другие вопросы по тегам