Я выполняю базовую c функцию «Книга посетителей».
Пользователи могут отправить небольшую форму (с тремя входами: имя, сообщение и эмодзи).
Я беру ее с помощью req.body в моем компоненте маршрутизатора. Я использую nodejs с express и bodyparser.
Я хочу хранить эти данные только в JSON, не хочу, чтобы здесь задействовалась никакая база данных. У меня проблемы с методом writeFile , использующим модуль 'fs' . Это работает, но это sh новые данные вне единого массива моего JSON файла.
Знаете ли вы, могу ли я sh попасть внутрь массива? Как метод .pu sh, но с writeFile / appendFile / wathever , который хорошо работает с json файлами. Вот мой код:
app.post (router):
app.post('/visitorBook', async (req, res) => {
let formData = {
name: req.body.name,
msg: req.body.msg,
emoji: req.body.emoji
}
try {
console.log(req.body)
let data = JSON.stringify(formData, null, 2);
fs.writeFile("./views/scripts/dataVisitorBook.json", data, { { // dataVisitorBook.json is the storage file
flag:'a' // this flag specify 'please append it' over 'please override file'
}
}, (err) => {
console.log('error :', err)
});
res.redirect('/contact')
} catch (error) {
console.error('/visitorBook route error : ', error)
}
})
My JSON:
[
{
"name": "test1",
"msg": "test1",
"emoji": "<i class='fas fa-hippo fa-3x'></i>"
},
{
"name": "test2",
"msg": "test2",
"emoji": "<i class='fas fa-hippo fa-3x'></i>"
}
]
{
"name": "sd",
"msg": "sd",
"emoji": "<i class='fas fa-kiwi-bird fa-3x'></i>"
}
Итак, последний с "sd" в имя и сообщение - это нажатое. Два других написаны мной вручную для тестов readFile.
Надеюсь, я предоставил всю необходимую информацию. Не привык здесь размещать ... Спасибо.