我正在做一个基本的“访客簿”功能。
用户可以提交一个小表格(包含三个输入:姓名、消息和表情符号)。
我在我的路由器组件中使用 req.body 获取它。我正在使用带有 express 和 bodyparser 的 nodejs。
我只想将这些数据存储在 JSON 中,不希望这里涉及任何数据库。我在使用“fs”模块的writeFile方法上遇到了麻烦。它可以工作,但会将新数据推送到我的 JSON 文件的单个数组之外。 你知道我是否可以推入阵列内部吗?类似于 .push 方法,但使用writeFile / appendFile / wathever可以很好地处理 json 文件。这是我的代码:
app.post(路由器):
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)
}
})
我的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”的是推送的。其他 2 个是我手动编写的,用于 readFile 测试。
我希望我提供了所有需要的信息。不习惯在这里发帖...谢谢。
跃然一笑
喵喵时光机
慕姐4208626
相关分类