首页 > 解决方案 > mssql nodejs:在整个承诺链中使用连接池

问题描述

我正在使用 nodejs 的 mssql 库来查询我的 Microsoft SQL 数据库。它首先检查数据库中是否存在一行,如果存在,则更新该行的值,如果不存在,则创建一个新行。这是我设置它的方式。执行时,它会在第 35 行和第 38 行抱怨变量 pool 不存在。

如何在第三个 then 语句中使用从第一个 then 语句中获得的池变量。

在此处输入图像描述

标签: sqlnode.jses6-promise

解决方案


问题是你的后三个 then 需要在你的第一个 then 中。这样,池就在他们的范围内。

模式是:

sql.connect(config).then(pool => { 
  pool.request.query().then().then().then();
})

你不能使用“如果不存在则插入”吗?这将是原子的和无种族的。如果不存在,请参阅SQL Server Insert 如果您使用它,您只需处理该行已经存在的情况


推荐阅读