Javascript 节点mssql抛出错误:池正在排空,无法接受工作
我有一个带有npm mssql模块的node js应用程序。我购买了一台云Windows 2012服务器,当尝试调用存储过程时,它抛出了错误 在ps.prepare处抛出错误(“exec usp_Get_Cars@param”,函数(err)Javascript 节点mssql抛出错误:池正在排空,无法接受工作,javascript,sql-server,node.js,Javascript,Sql Server,Node.js,我有一个带有npm mssql模块的node js应用程序。我购买了一台云Windows 2012服务器,当尝试调用存储过程时,它抛出了错误 在ps.prepare处抛出错误(“exec usp_Get_Cars@param”,函数(err) var express=require('express'); var-app=express(); var router=express.router(); var util=require('util'); 变量receive=要求('./接收');
var express=require('express');
var-app=express();
var router=express.router();
var util=require('util');
变量receive=要求('./接收');
var userID=“7DF506E1-700D-4D30-8162-74A903743561”;
app.use('/node_modules',express.static('/node_modules+');
app.use('/style',express.static(uu dirname+'/style');
app.use('/script',express.static('/script');
var sql=require('mssql');
变量配置={
用户:“prod_admin”,
密码:“myPassword”,
服务器:'serverName',
数据库:“元素”
};
app.get(“/getCars/:userID”),函数(req,res){
var userID=req.params.userID;
var connection=new sql.connection(配置、函数(错误){
var ps=新的sql.PreparedStatement(连接);
ps.input('param',sql.NVarChar(sql.MAX));
ps.prepare(“exec usp_Get_Cars@param”,函数(err){
执行({
参数:用户ID
},函数(错误,记录集){
log('Recordset:'+JSON.stringify(Recordset));
res.send(记录集);
ps.unprepare(功能(错误){
log('取消准备时出错:'+err);
});
});
});
});
});
app.get('/',函数(req,res){
res.sendFile('home.html'{
“根”:\uuu dirname+“/templates”
});
});
app.listen(3000,函数(){
console.log('节点服务器正在运行@http://localhost:3000');
})
这是AWS的防火墙问题。我无法确定如何通过Amazon修复它。但我将我的数据库移动到了另一台服务器上,它正常工作。在哪里关闭连接?如果不关闭,我怀疑它们会保持打开状态并最终超时。根据您请求的速度,您可能会耗尽连接,beca使用时,它们保持在打开状态pool@Psi错误似乎发生在建立连接之前。我在最后添加了connection.close(),但这没有起任何作用。根据,它说调用ps.unprepare()应该将连接释放回池。有什么建议吗?