Изменение значения объектов в JSON через Node.js путем редактирования файла

Мне сложно понять, как я могу писать в определенном месте? Я хочу написать, где эта команда указывает ReadData.welcome_message [0].

В моем файле database.json есть это;

{"faqs":["Birkere bir?","bir"],"welcome_message": ["welcome"]}

И ReadData.welcome_message[0] приветствует

    const fs = require('fs'); //imports node.js FileSystem
    const ReadDatabase = fs.readFileSync('database.json'); //reads the file in synchronized way
    const ReadData = JSON.parse(ReadDatabase); //parses bits so it can be readable

    //These three for me to understand what is where
    console.info(ReadData.faqs[0]);
    console.info(Object.keys(ReadData));
    console.info(ReadData.welcome_message[0]);


    let edited_welcome = JSON.stringify(edited_message);
    fs.writeFileSync('database.json', edited_welcome)//I understand this is the way to write to the file
    //console.info('"' +edited_message + '"'); //did help me understand if my code worked
   });

Вместо того, чтобы голосовать против, ответьте, если можете! Я часами борюсь с этим и ищу ответы. Не удалось найти ничего, что могло бы решить мою проблему. Я понимаю, может быть, вы, ребята, слишком хороши, но это не способ стимулировать новичков в программировании.

Haydar Öztürk 06.07.2018 11:53

Это может дать вам некоторое представление, может быть stackoverflow.com/questions/10685998/…

Devang Naghera 06.07.2018 12:27
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
2
1 336
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете обновлять по мере необходимости вот так:

const ReadDatabase = fs.readFileSync('database.json'); //reads the file in synchronized way
const ReadData = JSON.parse(ReadDatabase); //parses bits so it can be readable

//These three for me to understand what is where
console.info(ReadData.faqs[0]);
console.info(Object.keys(ReadData));
console.info(ReadData.welcome_message[0]);

ReadData.welcome_message[0] = 'New Welcome Message'; // Modify as you need!

let edited_ReadData = JSON.stringify(ReadData);
console.info('Updated database.json: ', edited_ReadData);
fs.writeFileSync('database.json', edited_ReadData);

Не уверен, понял ли я. Как это изменит файл database.js? ReadData.welcome_message [0] = "" это не обновляет. А приведенный ниже код не пишет ничего нового, потому что Edited_ReadData еще не определен? Что я скучаю?

Haydar Öztürk 06.07.2018 12:45

Итак, все, что мы здесь делаем, это загружаем содержимое 'database / .son' в объект ReadData. Затем модифицируем поле ReadData.welcome_message [0]. затем мы записываем результат в database.json. Код немного обновлю!

Terry Lennox 06.07.2018 12:49

Итак, теперь я регистрирую обновленный JSON перед записью в файл database.json.

Terry Lennox 06.07.2018 12:52

Думаю, я плохо объяснил. Поскольку у меня нет опыта задавать правильные вопросы, я не мог получить правильный ответ, мой друг. Этот код не обновляет значение welcome_message «welcome», мне нужно иметь возможность постоянно обновлять его, чтобы в следующий раз, когда этот код будет выполнен, он снова обновит его чем-то новым. Я смотрю отредактированный код в течение 14 минут, чтобы убедиться, что я ошибаюсь, я все еще могу ошибаться, но я не вижу способа, которым этот код делал то, что я хотел сделать. :(

Haydar Öztürk 06.07.2018 13:06

Мне так жаль. Это правильный способ исправить это. Я просто не понял этого, и, честно говоря, до сих пор не понимаю. Но пока мой код работает, если я определил, что это работает в уме, не нужно это понимать :) Большое спасибо за ответ.

Haydar Öztürk 06.07.2018 13:27

На самом деле это не так уж сложно, просто сосредоточьтесь на том, что делает каждая строка. Вы научитесь очень быстро !!

Terry Lennox 06.07.2018 17:30

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