如何防止 JSON 被覆盖?

问题描述 投票:0回答:1

运行代码时,JSON 会被覆盖。我想防止这种情况并添加数据。

const fs = require("fs");

exports.getHome = (req,res) => {
    res.render('../views/home.ejs',{
        ToDoItem:fs.readFileSync('./data.json', 'utf8'),
    })
}
exports.postItem = (req,res) => {
    //ToDoItemは入力された値
    const ToDoItem = req.body.ToDoItem;
    fs.writeFileSync("data.json",JSON.stringify(ToDoItem));
    res.redirect('/');
}
javascript node.js model-view-controller
1个回答
1
投票

如果您想防止文件内容被覆盖,请读取文件内容并将其解析为 JSON,将新的 TODO 项目附加到解析的 JSON,然后使用包含旧项目和新项目的新 JSON 编写一个文件。

假设您已将数组存储到 JSON 文件中。

var fs = require('fs')

exports.postItem = (req,res) => {
    const ToDoItem = req.body.ToDoItem;

    fs.readFile('data.json', function (err, data) {
        const existingToDos = JSON.parse(data)
        existingToDos.push(ToDoItem)

        fs.writeFile("data.json", JSON.stringify(existingToDos))
    })
}
© www.soinside.com 2019 - 2024. All rights reserved.