虽然我的数据库服务器不可用并且调用了我的 node-express 休息服务的任何功能hiExpress
,但 Nodejs 使节点服务器和节点报告控制台崩溃
sql server 连接关闭
我不希望这种情况发生,因为它应该进入 err 函数,或者至少它必须被 catch 块所关注。当数据库服务器不可用时,我能做些什么来避免 nodejs 崩溃我正在使用以下代码,只要数据库服务器可用,这绝对没问题。
var sqlServer = require('seriate');
app.get('/hiExpress',function(req, res)
{
var sr = {error:'',message:''};
var sql= 'select * from table1 where id=? and name=?';
var params = {id: 5, name:'sami'};
exeDB(res,sr,sql, params);//sent only 4 parameters (not 6)
});
function exeDB(res, sr, sql, params, callback, multiple) {
try {
var obj = {};
for (p in params) {
if (params.hasOwnProperty(p)) {
obj[p] = {
type: sqlServer.VARCHAR,
val: params[p]
};
}
};
var exeOptions = {
query: sql,
params: obj
};
if (multiple) {
exeOptions.multiple = true;
}
sqlServer.execute(sqlServerConfigObject, exeOptions).then(function (results) {
sr.data = results;
if (callback)
callback(sr);
else
res.json(sr); //produces result when success
}, function (err) {
//sr.message = sql;
console.log(11);
sr.error = err.message;
res.json(sr);
});
}
catch (ex) {
console.log(21);
sr.error = ex.message;
res.json(sr);
}
}
为什么我更喜欢使用系列
我对 node-SQL 不太满意,尤其是当涉及到多个查询选项时,甚至不使用事务。它有助于轻松进行参数化查询。