这是释放连接的正确方法吗?

时间:2017-08-02 10:24:03

标签: javascript node.js express

如您所知,Node.js语句是异步的。所以我按照以下方式编写代码。但我无法确定是否已释放连接。

为什么,因为我在connection.release()之后写res.json()。在我看来,一旦我们发送响应,控件就不会传递给下一个语句(查询 1 :是真的吗?)。我应该在发送回复之前写出来吗?

查询 2 res.json() / res.end()connection.release()都是异步方法。这是真的吗?

查询 3 :即使下面的代码运行正常,我也可以只编写一次connection.release(),即只在if else语句结束时吗? 如果是,为什么next()在Node.js中的res.end()之后不起作用?

connection.query(query, [body.endDate, tripId], function (err, rows, fields) {
    if (err) {
        res.status(422).json(
            {
                status: "error",
                data: {error: {code: err.code, sqlMessage: err.sqlMessage}},
                message: "Something didn't work."
            }
        );
        connection.release();
    } else {
        res.status(200).json(
            {
                status: "success",
                data: {affectedRows: rows.affectedRows},
                message: "Trip ended."
            }
        );
        connection.release();
    }
});

0 个答案:

没有答案