admin管理员组

文章数量:814986

正在更新JSON问题,如何正确更新?

我有一个文件issueData.json,我想在POST请求中更新。这是我的代码。我尝试读取文件解析为数组,推送新文件,然后将其重新写入。

app.post("/api/issues", (req, res, next) => {
  const issueObj = req.body;
  fs.readFile("issuesData.json", (err: Error, data: string | Buffer) => {
    if (err) {
      res.status(500).send(err);
    } else {
      const stringData = data.toString();
      const issueFile = [...JSON.parse(stringData)];
      const updatedIssueFile = issueFile.push(issueObj);
      fs.writeFile(
        "issuesData.json",
        JSON.stringify(updatedIssueFile),
        (err: Error) => {
          if (err) {
            res.status(500).send(err);
          } else {
            res.status(200).send("Issue has updated");
          }
        }
      );
    }
  });
});

1)这是一个好习惯吗?2)TS是这样,接下来的req,res类型应该是什么?3)这是更新JSON的好方法吗?

回答如下:

如果只写文件,则可能不需要读取文件的内容并将issueObj附加到issueFile数组。也许您可以将issueObj写入文件中的新行。也许诸如appendFile函数之类的东西会有所帮助(https://nodejs/api/fs.html#fs_fs_appendfile_path_data_options_callback)。

当前,随着文件的增长,读取操作将花费越来越长的时间,并将影响性能。但是,只需编写将确保您不会为每个POST请求产生该开销。

本文标签: 正在更新JSON问题,如何正确更新