Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 与节点mssql的主连接_Node.js_Node Mssql - Fatal编程技术网

Node.js 与节点mssql的主连接

Node.js 与节点mssql的主连接,node.js,node-mssql,Node.js,Node Mssql,我正在使用节点模块“node mssql”连接SQL Server 我正在创造一个蓝鸟承诺,最后这个承诺关闭了连接。我这样做是因为我不知道如何建立主连接,但我认为在每个查询中打开/关闭连接不是一个好主意 function connection() { let promise = sql.connect('...'); promise.catch(function (err) { console.log('********** Error on connectin

我正在使用节点模块“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----------');
  });
});

有什么方法可以连接主接线吗?

嗯。。。我通过在代码下面添加标志和函数来解决这个问题,我希望它能有所帮助,如果有更好的方法,也可以发表评论

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