at node-mssql return 查询结果
at node-mssql return the query result
function getAllCustomers() {
const pool = new sql.ConnectionPool(config);
const request = new sql.Request(pool);
try {
pool.connect(function () {
request.query('select * from Customers', function (err, res) {
console.log(res.recordset);
return res.recordset;
});
});
} catch (error) {
console.log(error);
}
return;
}
我顺利地将 res.recordset 打印到控制台,但是当我想从函数中 return 这个值时,return 为空。我该怎么办?
您在调用回调时收到 request.query 函数的响应。你的最后一个 return 将在回调被调用之前执行,这就是你得到 null 的原因。
function getAllCustomers(callBack) {
const pool = new sql.ConnectionPool(config);
const request = new sql.Request(pool);
try {
pool.connect(function () {
request.query('select * from Customers', function (err, res) {
if(err){
callBack(err);
}
else{
console.log(res.recordset);
callBack(false,res);
}
});
});
} catch (error) {
console.log(error);
callBack(error);
}}
function getAllCustomers() {
const pool = new sql.ConnectionPool(config);
const request = new sql.Request(pool);
try {
pool.connect(function () {
request.query('select * from Customers', function (err, res) {
console.log(res.recordset);
return res.recordset;
});
});
} catch (error) {
console.log(error);
}
return;
}
我顺利地将 res.recordset 打印到控制台,但是当我想从函数中 return 这个值时,return 为空。我该怎么办?
您在调用回调时收到 request.query 函数的响应。你的最后一个 return 将在回调被调用之前执行,这就是你得到 null 的原因。
function getAllCustomers(callBack) {
const pool = new sql.ConnectionPool(config);
const request = new sql.Request(pool);
try {
pool.connect(function () {
request.query('select * from Customers', function (err, res) {
if(err){
callBack(err);
}
else{
console.log(res.recordset);
callBack(false,res);
}
});
});
} catch (error) {
console.log(error);
callBack(error);
}}