如您所知,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();
}
});