javascript - 返回空数组或错误

标签 javascript node.js error-handling asynccallback

我让nodejs访问数据库以检索一行订单。
在名为orderDb.js的文件中定义了以下函数

module.exports.getWaitingOrders = function getWaitingOrders(callback) {
    pool.query("SELECT * FROM live_order_table WHERE isWaiting = 1;", function(err, rows, fields) {
        if (err) {
            return new Error('Db error: ' + err);
        }
        if (rows.length <= 0) {
            return new Error("No results"); //Is this recommended?
            return [];// or this?
        }

        rows.forEach(function(row) {
            var order = {
                orderID: row.order_id
            }
        });
    }
}

从数据库返回任何内容时,我应该返回错误还是空数组/对象?

我正在这样调用方法:
orderDb.getWaitingOrders(function handleWaitingOrders(err, orders){});

我也有一个关于如何处理数据库问题的问题。我现在正在做的是记录错误并稍后重试。我应该遵循更好的做法吗?

最佳答案

您应该返回一个空数组或null,以便可以识别数据库错误

module.exports.getWaitingOrders = function getWaitingOrders(callback) {
    pool.query("SELECT * FROM live_order_table WHERE isWaiting = 1;", function(err, rows, fields) {
        if (err) {
            return new Error('Db error: ' + err) ;
        }
        if (rows.length <= 0) {
            callback(err , []); // you should return an empty response here so that you can differentiate between error and no order

        }

        rows.forEach(function(row) {
            var order = {
                orderID: row.order_id
            }
        });
    }
}


orderDb.getWaitingOrders(function handleWaitingOrders(err, orders){

// do your error handling here 

});

关于javascript - 返回空数组或错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24852784/

相关文章:

javascript - AngularJS 指令内的双向绑定(bind)适用于 ng-click,但不适用于 window.onclick

python - 制作一个处理所有错误的函数正常吗?

angular - 无法在Angular2中获取错误消息`

python - 如何在 python + paramiko 中将套接字错误作为异常处理?

javascript - 为什么 JavaScript 函数执行后会附加查询字符串参数?

javascript - 如何解决mouseenter和mouseleave重叠的困境?

javascript - jQuery 的 width() 函数的 Javascript 等价物是什么?

node.js - fs.readFile(<Buffer> | <integer) 如何工作?

php - 使用按位运算符测试 SHA-256 摘要的相等性

json - 使用 pdf-table-extractor 包循环文件