0

ノード モジュール「node-mssql」を使用して SQL Server に接続しています。

ブルーバードの約束を作成していますが、最後にこの約束が接続を閉じます。メインコネクションの作り方がわからないのでやってみましたが、クエリごとにコネクションを開いたり閉じたりするのは得策ではないと思います。

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----------');
  });
});

メイン接続する方法はありますか?

4

1 に答える 1

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());
    }
});};
于 2017-02-03T18:00:33.530 に答える