這是我使用的是MSSQL此刻的方式,但它有時會錯誤:無法獲取節點MSSQL正常工作
的JavaScript:
router.get('/academiejaren', (req, res) => {
sql.connect(dbconfig, function (err) {
var request = new sql.Request();
if (err) {
console.log(err);
return;
}
request.query("SELECT * FROM [Alg].[DefAJ];", function (err, recordset) {
if (err) {
console.log(err);
return;
}
else {
res.end(JSON.stringify(recordset));
}
});
request.query();
});
});
錯誤:
{ ConnectionError: Connection is closed.
at C:\Users\Milan\Documents\Octopus\Octopus 2.0\node_modules\mssql\lib\main.js:1569:17
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickCallback (internal/process/next_tick.js:104:9)
name: 'ConnectionError',
message: 'Connection is closed.',
code: 'ECONNCLOSED' }
(node:556) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): ConnectionError: Connection is closed.
(node:556) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
我使用的版本是3.2.0,因爲我無法獲得最新的4.0.2版本的工作...任何幫助或一些很好的示例,因爲我無法弄清楚文檔...
提前致謝!
編輯
更新於一個小的測試項目4.0.2。我得到它的工作。將我的API更改爲此更新。
router.get('/academiejaren', (req, res) => {
(async function() {
try {
let pool = await sql.connect(config)
let result1 = await pool.request()
.query('SELECT * FROM [Alg].[DefAJ];')
res.send(JSON.stringify(result1.recordset));
} catch (err) {
res.send("CAUGHT ERROR academiejaren");
}
})()
sql.on('error', err => {
// ... error handler
})
});
現在我還有一個小問題,應該如何處理catch和sql.on()?我應該如何處理錯誤?
噢上帝......布它有時有用嗎?我從api獲取了我的數據?它只是有時回饋這個錯誤? –
你打開了連接。該部分沒有錯,如果你想知道更多關於res.end看這裏:http://stackoverflow.com/a/40326333/7707749 –
哦,好的,謝謝!我有一個問題,如果我可以嗎?在每次數據處理/下載之後,我是否需要sql.close()? –