我在npm上使用mssql
https://www.npmjs.com/package/mssql 首先,我只需要插入一张桌子。 所以这就是我的用法:
const pool_db1 = await sql.connect(config);
pool.request()
.input('input_parameter',element.CustomerID)
.query('INSERT ..')
现在我需要为位于不同数据库中的另一个表插入一些数据。
所以基本上我有2个配置文件。 我试图添加
const pool_db1 = await sql.connect(config);
const pool_db2 = await sql.connect(config2);
我知道我可以先通过SQL.close()连接,然后再通过sql.connect()连接, 但是我想要另一个解决方案,因为对表的这种INSERT对于更多表(在同一连接中)是异步发生的, 所以我需要那些2连接要打开,但是它似乎要打开2连接。 错误如下:
(节点:13888)UnhandledPromiseRejectionWarning:未处理的承诺 拒绝(拒绝ID:1):错误:全局连接已存在。 首先调用sql.close()。 warning.js:18(节点:13888)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。在 未来,未处理的承诺拒绝将终止 具有非零退出代码的Node.js进程。
答案 0 :(得分:0)
显然,当您使用sql.conenct
时,您是在全局范围内使用lib,请检查docuemntation我发现了ConnectionPool
方法,请尝试:
const pool_db1 = await new sql.ConnectionPool(config).connect();
const pool_db2 = await new sql.ConnectionPool(config2).connect();