追加对象到一个json文件

我有一个任务来实现一个伪购物车页面,当我点击结帐时,我想发送一个请求到一个json文件“ordersTest.json”,结构如下: { "orders": [] } 。 所以当一个post请求发送时,我必须把数据放在json中的这个orders数组中。 我对Nodejs是完全陌生的并且expression。 这是我的第一个项目,我想出了一个非常简单的服务器。

 const express = require('express') const path = require('path') const fs = require('fs') const url = require('url') const bodyParser = require('body-parser') const app = express() const ordersJson = require('./public/ordersTest.json'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.post('/api/orders', (req, res) => { let body = req.body; console.log(body); fs.appendFile('./public/ordersTest.json', JSON.stringify(body), err => { if (err) console.log(err); }) }) 

但是这个东西只能附加到文件的末尾。 我需要把它放在这个命令数组中

这是我的ajax在post正文中传递一个示例对象:

 $(".btn-checkout").on('click', function() { let date = new Date(); $.ajax({ method : "POST", url: "/api/orders", data : {a: "abc"},//{ order: "order",date: date.toDateString(), order: JSON.stringify(cart)}, success : function(success){ console.log(success,'success'); }, error : function(err) { console.log(err); } }); clearCart(); displayClearedCart(); }); 

您需要parsingJSON文件,然后像对象一样对待它。 完成之后,再次将其转换为JSON并覆盖您的文件。 喜欢这个

 app.post('/api/orders', (req, res) => { let body = req.body; var ordersTest = require('./public/ordersTest.json'); ordersTest.orders.push(body); fs.writeFile('./public/ordersTest.json', JSON.stringify(ordersTest), function(err) { if (err) res.sendStatus(500) res.sendStatus(200); }); }) 

没有testing,请修复错误的错误,如果有的话。