第一次执行不会出错,但再执行会出现
ConnectionError: .connect can not be called on a Connection in Final state.
问题出在connection.connect();要怎么修改
/* filename: dbseConfig.js */
var config = {
server: '192.168.5.111',
authentication: {
type: 'default',
options: {
userName: 'sa',
password: 'p@ssw0rd'
}
},
options: {
// If you are on Microsoft Azure, you need encryption:
encrypt: false,
database: 'TEST',
port:1433,
trustServerCertificate: true
}
} ;
module.exports = config;
var Request = require('tedious').Request;
const executeSQL = (connection,strgSql,strgOpt) =>
new Promise((resolve, reject) => {
var result =[];
connection.on('connect', err => {
if (err) {
console.log(err);
reject(err);
}
else{
const request = new Request(strgSql, (err,rowCount) => {
if (err) {
reject(err);
} else {
console.log("rowCount:",rowCount);
if ((result == "" || result == null || result == "null")) result = "[]";
resolve(result);
}
request.on('row', columns => {
if (strgOpt=="array"){
var arry=[]
columns.forEach(column => {
arry.push(column.value);
});
result.push(arry);
//console.log(result);
}
if (strgOpt=="object"){
var objt={}
columns.forEach(column => {
objt[column.metadata.colName]=column.value;
});
result.push(objt);
//console.log(result);
}
});
console.log("connection.close");
connection.close();
});
connection.execSql(request);
}
});
connection.connect();
}
);
module.exports ={executeSQL};