0
我有一個節點js應用程序與npm mssql模塊。我購買了雲端Windows 2012服務器,當試圖調用存儲過程時,它會拋出錯誤。節點mssql拋出錯誤:池正在耗盡,無法接受工作
在ps.prepare( 「EXEC usp_Get_Cars @param」 功能(ERR)
var express = require('express');
var app = express();
var router = express.Router();
var util = require('util');
var recieve = require('./recieve');
var userID = "7DF506E1-700D-4D30-8162-74A903743561";
app.use('/node_modules', express.static(__dirname + '/node_modules'));
app.use('/style', express.static(__dirname + '/style'));
app.use('/script', express.static(__dirname + '/script'));
var sql = require('mssql');
var config = {
user: 'prod_admin',
password: 'myPassword',
server: 'serverName',
database: 'elements'
};
app.get("/getCars/:userID", function(req, res) {
var userID = req.params.userID;
var connection = new sql.Connection(config, function(err) {
var ps = new sql.PreparedStatement(connection);
ps.input('param', sql.NVarChar(sql.MAX));
ps.prepare("exec usp_Get_Cars @param", function(err) {
ps.execute({
param: userID
}, function(err, recordset) {
console.log('Recordset: ' + JSON.stringify(recordset));
res.send(recordset);
ps.unprepare(function(err) {
console.log('Error on unprepare: ' + err);
});
});
});
});
});
app.get('/', function(req, res) {
res.sendFile('home.html', {
'root': __dirname + '/templates'
});
});
app.listen(3000, function() {
console.log('Node server running @ http://localhost:3000');
});
我曾嘗試尋找爲什麼會出現此錯誤,但可以」拋出錯誤你可以看到代碼throws the error here。我想知道這是否是服務器設置的問題?
沒有錯誤RSS在js文件中,我沒有任何問題在我的Windows 10本地機器上運行。有任何想法嗎?
你在哪裏關閉你的連接?如果你不關閉他們,我懷疑他們會保持開放並最終超時。根據您請求的速度,您可能會用完連接,因爲它們在池中保持打開 – Psi
@Psi看起來好像在連接完成之前發生錯誤。我在最後添加了connection.close(),但那沒有做任何事情。根據[docs here](https://www.npmjs.com/package/mssql#prepared-statement),它說調用ps.unprepare()應該釋放連接回池。 – Scott
有什麼建議嗎? – Scott