мой бэкэнд nodejs возвращает ноль, но все равно регистрируется в базе данных - PullRequest
0 голосов
/ 19 октября 2019

я создал две конечные точки: одну, чтобы получить создатель заказа, а другую - чтобы обновить заказ, чтобы сгенерировать orderId и подробные данные о заказе, но создатель продолжает возвращать ноль, но все же регистрируется в базе данных. Вот код

router.post('/createOrder', function (req, res, next) {
if (req.body.key == API_KEY) {

    var order_phone = req.body.orderPhone
    var order_name = req.body.orderName
    var order_address = req.body.orderAddress
    var order_date = moment(req.body.orderDate, "MM/DD/YYYY").format("YYYY-MM-DD")
    var restaurant_id = req.body.restaurantId
    var transaction_id = req.body.transactionId
    var cod = (req.body.cod == "true")
    var total_price = req.body.totalPrice
    var num_of_item = req.body.numOfItem
    var order_fbid = req.body.orderFBID




    if (order_fbid != null) {
        req.getConnection(function (error, conn) {
            conn.query('INSERT INTO `Order`(OrderFBID,OrderPhone,OrderName,OrderAddress,OrderStatus,OrderDate,RestaurantId,'
                + 'TransactionId,COD,TotalPrice,NumOfItem) VALUES(?,?,?,?,?,?,?,?,?,?,?)', [order_fbid, order_phone, order_name, order_address, 0, order_date, restaurant_id, transaction_id, cod, total_price, num_of_item], function (err, rows, fields) {

                    if (err) {
                        res.status(500)
                        res.send(JSON.stringify({ success: false, message: err.message }))
                    }
                    else {
                        conn.query('SELECT OrderId as OrderNumber FROM `Order` WHERE OrderFBID=? AND NumOfItem > 0 '
                            + 'ORDER BY orderNumber DESC LIMIT 1', [order_fbid], function (err, rows, fields) {

                                if (err) {
                                    res.status(500)
                                    res.send(JSON.stringify({ success: false, message: err.message }))
                                }
                                else {
                                    res.send(JSON.stringify({ success: false, result: rows }))
                                }
                            })

                    }
                })
        })
    }
    else {
        res.send(JSON.stringify({ success: false, message: "Missing orderFBID body  marfe" }))
    }
}
else {
    res.send(JSON.stringify({ success: false, message: "Wrong api key marfe" }))
}

})

поэтому после долгих попыток заставить мой код работать, я решил сменить JSON на true true

res.send(JSON.stringify({ success: true, result: rows }))    

, но затем я получил UPDATEDORDER HTTP 500 Внутренний серверошибки

здесь - порядок обновления

router.post('/updateOrder', function (req, res, next) {
if (req.body.key == API_KEY) {

    var order_id = req.body.orderId
    var order_detail

    try {
        order_detail = JSON.parse(req.body.orderDetail)
    }
    catch (err) {
        res.status(500)
        res.send(JSON.stringify({ success: false, message: err.message }))
    }

    if (order_detail != null && order_id != null) {

        var data_insert = []
        for (i = 0; i < order_detail.length; i++) {
            data_insert[i] = [
                parseInt(order_id),
                order_detail[i]["foodId"],
                order_detail[i]["foodQuantity"],
                order_detail[i]["foodPrice"],
                0, // discount
                order_detail[i]["foodSize"],
                order_detail[i]["foodAddon"],
                parseFloat(order_detail[i]["foodExtraPrice"])
            ]
        }
        req.getConnection(function (error, conn) {
            conn.query('INSERT INTO OrderDetail(OrderId,ItemId,Quantity,Price,Discount,Size,Addon,ExtraPrice) VALUES(?)', data_insert, function (err, rows, fields) {

                if (err) {
                    res.status(500)
                    res.send(JSON.stringify({ success: false, message: err.message }))
                }
                else {
                    res.send(JSON.stringify({ success: true, message: "update success" }))

                }
            })
        })
    }
    else {
        res.send(JSON.stringify({ success: false, message: "Missing orderID body  marfe" }))
    }
}
else {
    res.send(JSON.stringify({ success: false, message: "Wrong api key marfe" }))
}

})

здесь - детали заказа

router.get('/orderDetail', function (req, res, next) {
if (req.query.key == API_KEY) {
    req.getConnection(function (error, conn) {
        var order_id = req.query.orderId
        if (order_id != null) {
            conn.query('SELECT orderId,itemId,quantity,discount,extraPrice,size,addOn FROM OrderDetail WHERE orderId=?', [order_id], function (err, rows, fields) {

                if (err) {
                    res.status(500)
                    res.send(JSON.stringify({ success: false, message: err.message }))
                }
                else {
                    if (rows.length > 0) {
                        res.send(JSON.stringify({ success: true, result: rows }))
                    }
                    else {
                        res.send(JSON.stringify({ success: false, message: "Empty" }))
                    }
                }
            })

        } else {
            res.send(JSON.stringify({ success: false, message: "Missing orderId in query" }))
        }

    })
}
else {
    res.send(JSON.stringify({ success: false, message: "Wrong orderFBID key marfe" }))
}

})

...