[英]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.