首页 > 解决方案 > 错误:ENOENT:没有打开这样的文件或目录

问题描述

const app = express();
const bodyParser = require("body-parser");
const fs = require("fs");
const db = fs.readFileSync("./db/db.json");
const path = require("path");

app.use(express.static("views"));

let dataFile = JSON.parse(db);
console.log(`db file: ${db}`);

console.log(dataFile.users);

app.get("/", (req, res) => {
  res.sendFile(path.join(__dirname + "/views/form.html"));
});

app.post("/users", (req, res) => {
  res.redirect("/");

  let obj = new Object(req.body);
  let json = JSON.stringify(obj);
  console.log(`json data: ${json}`);

  fs.writeFile(db, json, { flag: "w" }, err => {
    if (err) console.log(`${err}`);
    else console.log("file written successfully.");
  });
});

app.listen(3000, () => console.log(`Example app listening on port 3000!`));

我要做的是从表单中获取用户数据并将其保存到db.json文件中。我可以读取文件,但无法在json文件中附加数据。

这是我的db.json文件包含的内容:

{
  "users": [
    {
      "id": "1",
      "First Name": "james",
      "Middle Name": "",
      "Last Name": "scar",
      "Age": "18"
    }
  ]
}

我尝试了很多东西,但都没有奏效。

标签: javascriptnode.jsjson

解决方案


推荐阅读