如何将数组从app.get()传递到app.post()

时间:2019-06-12 23:53:29

标签: javascript mysql node.js ajax

我从ajax文件中得到一个数组,其中包含要在订单中添加的产品数组。我想在orderId列中将orderProducts表和order表相互链接。但是我在app.get()中获取了数组,而在app.post()中却无法获取数组以发布数据。.在页面中选择了产品,在另一个页面中选择了订单数据。

我的Ajax代码


    $('#save').click(function () {
        var orderProduct = new Array();
        $("#review-products input[type=checkbox]:checked").each(function () {
                      var row = $(this).closest("tr");
                      var message0 = row.find('#check').val();
                      var message1 = row.find('.name').text().trim();
                      var message2 =  row.find('.currency').text().trim();
                      var message3 =  row.find(".foo").val();
                      const result =  {check: message0,name: message1,p: message2,q:  message3 ,total: message2 * message3}
                      var hh = orderProduct.push(result);
                });
              $.ajax({
                type: 'GET',
                data: {selectedProduct: orderProduct },
                url: '/order/product',
                success: function (data) {
                  console.log(data);
                }
              })
               })

路线


    app.get('/order/product' , getProduct)
    app.post('/postOrder' , postOrder);
    getProduct: (req , res ) => {
      var products = req.query.selectedProduct;
      console.log(products);
    },
    postOrder: (req ,res) => {
      res.redirect('/')
    }

2 个答案:

答案 0 :(得分:0)

尝试使用body-parser

var bodyParser = require('body-parser')
... 
app.use(bodyParser )

// then
getProduct: (req , res ) => {
  console.log(req.body);
}

也改变

$.ajax({
    type: 'POST',
    ...
})

答案 1 :(得分:0)

我在get和post函数中都使用了全局变量来使用相同的变量