![](/img/trans.png)
[英]Trying to connect to SQL server using Tedious Connection and Windows Authentication?
[英]Tedious - Error: `.connect` can not be called on a Connection in `Final` state
我有這個代碼,它返回錯誤:'錯誤: .connect
不能在Final
state 中的連接上調用。 ' 問題是,僅當我發出第二個請求時才會打印此錯誤,因為第一個請求返回正確的值。
有誰知道如何解決這個問題?
const express = require('express')
const router = express.Router()
const bodyParser = require('body-parser');
var Connection = require('tedious').Connection;
var Request = require('tedious').Request;
const config = require('./config.json');
var connection = new Connection(config);
router.route('/')
.post(async (req, res) => {
connection.connect((err) => {
if(err) {
console.log('Connection Failed');
console.log( err);
} else {
executeSQL()
}
})
function executeSQL() {
let data;
request = new Request('Here is a select', function(err, rowsCount, rows) {
if(err) console.log(err)
else {
res.send(rows)
// request.fullData = rows;
}
connection.close();
});
// request.on('requestCompleted', function(rowCountm, more) {
// // console.log('dados: ')
// console.log(request.fullData)
// })
connection.execSql(request);
}
});
module.exports = router
我的數據庫配置:
{
"server": "serverName",
"authentication": {
"type": "default",
"options": {
"userName": "userName",
"password": "**"
}
},
"options": {
"encrypt": true,
"database": "databaseName",
"rowCollectionOnDone": true,
"rowCollectionOnRequestCompletion": true
}
}
我確實修復了這個錯誤。
基本上,每次調用端點時,我都需要創建一個新連接。 這是代碼:
const getConnection = async () => {
if(connection) return connection;
connection = new Connection(config);
};
getConnection()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.