sql - 从 NodeJs 连接 SQL 数据库 - ConnectionError : Connection not yet open

标签 sql node.js

我尝试从 NodeJs 连接 SQL 数据库,但收到此错误: 查询数据库时出错:- ConnectionError:连接尚未打开。

 var executeQuery = function(res, query) { 
   var conn = new sql.ConnectionPool(dbConfig);

   conn.connect().then(function () {
     // create Request object
     var request = new sql.Request(conn);
     // query to the database
     request.query(query, function (err, queryResult) {
       if (err) {
         console.log("Error while querying database :- " + err);
         res.send(err);
       } else {
         res.send(queryResult);
       }
     });

     conn.close();
   })
}

请帮忙。

谢谢你 詹姆斯

最佳答案

connection pool类将返回一个 promise ,该 promise 将通过您的连接启动的池进行解析:

 var executeQuery = function(res, query) { 

     var conn = new sql.ConnectionPool(dbConfig);

     conn.connect()
         .then(function (pool) {
             //    ^ the pool that is created and should be used

             // create Request object
             var request = new sql.Request(pool);
             //                            ^ the pool from the promise

             // query to the database
             request.query(query, function (err, queryResult) {
                 if (err) {
                     console.log("Error while querying database :- " + err);
                     res.send(err);
                 } else {
                     res.send(queryResult);
                 }
             });
             conn.close();
        });           
}

在您的情况下,conn 变量始终是 promise ,而不是连接本身。

文档中连接池的基本示例如下:

new sql.ConnectionPool(config).connect().then(pool => {
    return pool.query`select * from mytable where id = ${value}`
}).then(result => {
    console.dir(result)
}).catch(err => {
    // ... error checks
})

关于sql - 从 NodeJs 连接 SQL 数据库 - ConnectionError : Connection not yet open,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45636269/

相关文章:

sql - sql server中带有case语句的更新查询中的聚合函数

sql - 数据库如何自动生成唯一标识符?

sql - 数据库规范化

sql - T-SQL : checking for email format

sql - 如何删除数据库中的所有默认约束?

javascript - 带有nodejs的cordova中的端口问题

javascript 在 ui 路由器 View 中不起作用

node.js - 7zip 标准输出是否损坏?有没有办法捕获nodejs的进度? [ window ]

javascript - 从 makefile 调用 node.js 失败

javascript - 具有动态键的 Node.js/Javascript 多维数组