我尝试从 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/