2017-01-31 18 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()); 
    } 
});};