使用express js在文件中写入/添加数据

时间:2017-04-16 10:38:06

标签: javascript json express

我试图在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();
    });
});

});

1 个答案:

答案 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")
})