首先,我使用nodejs和oracledb创建了一个API。我有两条不同响应时间的路线,比方说A路有10s响应时间,B路1s响应时间。当我执行路由A后跟着路由B时,我得到了错误的NJS-003:无效的连接,因为路由B完成并关闭了路由A后面的连接。
有什么办法解决这个问题吗?
我使用oracle池、getConnection和关闭每个API请求的连接。
async function DBGetData(req, res, query, params = {}) {
try {
connection = await oracledb.getConnection();
connection.callTimeout = 10 * 1000;
result = await connection.execute(
query,
params,
{
outFormat: oracledb.OUT_FORMAT_OBJECT,
}
);
// send query result
res.json({
status: res.statusCode,
length: result.rows.length,
results: result.rows,
});
} catch (err) {
return res.status(400).json({ error: err.toString() });
} finally {
if (connection) {
// Always close connections
await connection.close();
}
}
}
发布于 2021-11-18 22:13:08
在let connection;之前添加一个try,这样每个DBGetData()调用都肯定使用自己的连接。目前看来,您正在引用一个全局变量。
https://stackoverflow.com/questions/70014179
复制相似问题