我试图在json文件中编写/添加数据(例如,对于每个请求,在json文件中添加了一个新的json)我正在使用Express.js。我是所有这一切的新手,所以我真的不知道该怎么做。我正在使用POST请求,这是我到目前为止所得到的。我知道这是一场灾难性的大混乱,我刮掉了所有可以帮助我并收集所有信息的东西。我迷失了。谢谢你的帮助!
app.post('*/', function(req, res) {
res={
first_name: req.body.first_name,
last_name: req.body.last_name,
reponse1: req.body.reponse1,
reponse2: req.body.reponse2,
};
JSON.stringify(res);
var body = {
table: []
};
body.table.push(res);
filePath = __dirname + '/data.json';
req.on('data', function(data) {
body += data;
});
req.on('end', function (){
fs.appendFile(filePath, body, function() {
res.end();
});
});
});
答案 0 :(得分:1)
在你的代码中,我看到了很多错误。首先,您不应该指定res = { }
。其次,您将JSON数据字符串化,如下所示。我还建议你先阅读一些Node.js的教程。您可以浏览https://www.tutorialspoint.com/nodejs/或https://www.codementor.io/nodejs/tutorial。
根据您的要求,您只需使用以下代码:
const express = require('express')
const app = express()
const bodyParser= require('body-parser')
const fs = require('fs')
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: false }))
app.post('/', function(req, res){
var body = {
first_name: req.body.firstName,
last_name: req.body.lastName
}
filePath = __dirname + '/data.json'
fs.appendFile(filePath, JSON.stringify(body), function(err) {
if (err) { throw err }
res.status(200).json({
message: "File successfully written"
})
})
})
app.listen(3000,function(){
console.log("Working on port 3000")
})