簡體   English   中英

將對象追加到json文件

[英]Append objects to a json file

我有一個實現偽購物車頁面的任務,當我單擊結帳時,我想向具有以下結構的json文件“ ordersTest.json”發送請求: { "orders": [] } 因此,當發送發布請求時,我必須將數據放入json中的orders數組中。 我對Node.js和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();
});

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

未經測試,請解決錯字錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM