javascript - 将对象附加到 json 文件

标签 javascript jquery json node.js express

我的任务是实现一个伪购物车页面,当我点击结帐时,我想向具有以下结构的 json 文件“ordersTest.json”发送请求: {“订单”:[]}。因此,当发送发布请求时,我必须将数据放入 json 中的订单数组中。我对 Nodejs 和表达完全陌生。这是我的第一个项目,我想出了一个非常简单的服务器。

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 在帖子正文中传递一个示例对象:

$(".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();
});

最佳答案

您需要解析 JSON 文件,然后将其视为对象。完成后,再次将其转换为 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);
    });
})

未经测试,如有错字请修正。

关于javascript - 将对象附加到 json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47691600/

相关文章:

java - REST/JSON : How to generate sample requests ? 如何暴露API?

javascript - ExternalInterface.addCallback 不起作用

javascript - jQuery - 变量增量不是 "updating"

javascript - 无法正确使用json响应

javascript - 如何从代码中动态删除div标签?

jquery - 在 iframe 中设置 HTML 页面样式的问题(在 Chrome 和 IE 中)

javascript - ```警报(`${info} : ${pokemondetails[info]}\n` )```是什么意思?

javascript - 将 PDO 对象转换为 Javascript JSON

jquery - iPad HTML 焦点

python - 如何使用python从json文件打印