【问题标题】:Append objects to a json file将对象附加到 json 文件
【发布时间】:2018-05-21 08:32:48
【问题描述】:

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

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

【问题讨论】:

    标签: javascript jquery json node.js express


    【解决方案1】:

    您需要解析 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);
        });
    })
    

    未测试,如有拼写错误,请修正。

    【讨论】:

    • 谢谢!完美运行
    猜你喜欢
    • 2020-04-12
    • 1970-01-01
    • 2019-04-29
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-23
    相关资源
    最近更新 更多