NodeJS API NJS-003: 无效连接
NodeJS API NJS-003: invalid connection
首先,我使用 nodejs 和 oracledb 创建了一个 API。
我有 2 条响应时间不同的路线,假设路线 A 的响应时间为 10 秒,路线 B 的响应时间为 1 秒。当我执行路线 A 后跟路线 B 时,我收到错误 NJS-003: invalid connection 因为路线 B 完成并关闭连接后跟路线 A.
有什么办法解决这个问题吗?
我在每次 API 请求时都使用 oracle 池、getConnection 和关闭连接。
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();
}
}
}
在 try
之前添加一个 let connection;
以便每个 DBGetData()
调用肯定使用它自己的连接。目前您似乎引用了一个全局变量。
首先,我使用 nodejs 和 oracledb 创建了一个 API。 我有 2 条响应时间不同的路线,假设路线 A 的响应时间为 10 秒,路线 B 的响应时间为 1 秒。当我执行路线 A 后跟路线 B 时,我收到错误 NJS-003: invalid connection 因为路线 B 完成并关闭连接后跟路线 A.
有什么办法解决这个问题吗?
我在每次 API 请求时都使用 oracle 池、getConnection 和关闭连接。
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();
}
}
}
在 try
之前添加一个 let connection;
以便每个 DBGetData()
调用肯定使用它自己的连接。目前您似乎引用了一个全局变量。