繁体   English   中英

如何使用节点js将不同的对象保存在json中的一个数组中

[英]How to save different objects in one array in json using node js

我有一个有两个输入的表单。我想将 JSON 中的每个表单详细信息保存在一个数组中......这是我的 HTML 代码......

  <form action="/saveData" method="post">
        First Name: <input type = "text" name = "fname"> <br>
        Last Name: <input type = "text" name = "lname">
        <input type = "submit" value = "Submit">
  </form>

我正在使用节点 js 将这些数据保存在 JSON 文件users.json中...

我的节点 js 代码是这样的......

var express = require('express');
var bodyParser = require('body-parser');
var app = express();
const { json } = require('body-parser');
const fs = require('fs');
const PORT = 5000;
var http = require('http');
const path = require('path')

// http.createServer(function (req, res) {
//   res.writeHead(200, {'Content-Type': 'text/html'});
//   res.end('Hello World!');
// }).listen(8080);336

app.use(express.static('files'))

app.use(express.static(path.join(__dirname, 'public')));

//========================reading file from json============================//

let urlencoded = bodyParser.urlencoded({ extended: true })
app.post('/saveData', urlencoded,function(req, res) {

  var myData = {
    "name": req.body.fname,
    "lastname": req.body.lname
  }

 var  formData = JSON.stringify(myData);
  console.log(formData);

  //=========================############// writing data to json //############========================//

  fs.writeFile('./user.json',formData, function (err) {
    if (err) {
      console.log(err);
    }
  })

  res.send("DATA SAVED SUCCESSFULLY");
});

app.listen(PORT, () => {
  console.log(`Listening on ${PORT}`)
})

结果出现在 JSON 文件中是这样的......

{"name":"Azhar","lastname":"khan"}

每次我提交表单时,不是在 JSON 文件中添加数据,而是用新数据替换旧数据,每次只替换它......我想用旧数据添加新表单数据一个数组中的不同对象.....我该怎么做。提前致谢

app.post('/saveData', urlencoded, function (req, res) {
    var list = [];
    var FILE_NAME = './user_list.json';

    if (fs.existsSync(FILE_NAME)) {
        var string = fs.readFileSync(FILE_NAME)
        try{ list = JSON.parse(string) } catch(e) { }
    }

    list.push({
        "name": req.body.fname,
        "lastname": req.body.lname
    })

    fs.writeFile(FILE_NAME, JSON.stringify(list), function (err) {
        if (err) {
            console.log(err);
            res.send({ status: false, message: err })
            return
        }
        res.send("DATA SAVED SUCCESSFULLY");
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM