2017-01-31 8 views
0

私はノードモジュール "node-mssql"を使用してSQL Serverに接続しています。node-mssqlとの主な接続

私はブルーバードの約束を作成していますが、結局この約束は接続を閉じます。私は主な接続方法を知らないので、私はそれを行ったが、私は各クエリの接続を開いたり閉じたりするのは良い考えだとは思わない。

function connection() { 
    let promise = sql.connect('...'); 
    promise.catch(function (err) { 
     console.log('********** Error on connecting **********'); 
     console.log(err); 
     console.log('---------- Error on connecting ----------'); 
    }) 
    .finally(function() { 
     sql.close(); 
    }); 
    return promise; 
}; 

var query = connection().then(function() { 
    new sql.Request() 
    .input('foo', mssql.NVarChar, 'bar') 
    .query('...') 
    .then(function (out) { 
    //... 
    }) 
    .catch(function (err) { 
    console.log('********** Error on query **********'); 
    console.log(err); 
    console.log('---------- Error on query----------'); 
    }); 
}); 

主な接続方法はありますか?

答えて

0

まあ...これは私のコードの下にあるフラグと関数を追加することで解決します。より良い方法があれば、それが助けてくれることを願っています。

var mssql = require('mssql'); 
var sql = {} 
sql.connected = false; 
sql.connect = function() { 

let promise = mssql.connect(SQL.String); 

promise.catch(function (err) { 

    // handling error 
    mssql.close(); 
    sql.connected = false; 
}); 
    return promise; 
}; 
sql.Request = function() { 

return new Promise(function (resolve, reject) { 


    if (!sql.connected) { 

     sql.connect() 
     .then(function() { 

      sql.connected = true; 
      resolve(new mssql.Request()); 
     }); 
    } else { 

     resolve(new mssql.Request()); 
    } 
});}; 
関連する問題