2017-08-11 25 views
1

NodeJsからSQLデータベースに接続しようとしていますが、このエラーが発生しています: データベースを照会中にエラーが発生しました: - ConnectionError:NodeJsからSQLデータベースを接続しています - ConnectionError:接続がまだ開かれていません

var executeQuery = function(res, query){ 
    var conn = new sql.ConnectionPool(dbConfig); 
    conn.connect().then(function() { 


         // create Request object 
         var request = new sql.Request(conn); 
         // query to the database 
         request.query(query, function (err, queryResult) { 
          if (err) { 
             console.log("Error while querying database :- " + err); 
             res.send(err); 
            } 
            else { 

             res.send(queryResult); 

              } 
           }); 


          conn.close(); 
     });   
} 

助けてください。 conn変数は常に約束していないあなたのケースでは

var executeQuery = function(res, query) { 

    var conn = new sql.ConnectionPool(dbConfig); 

    conn.connect() 
     .then(function (pool) { 
      // ^the pool that is created and should be used 

      // create Request object 
      var request = new sql.Request(pool); 
      //       ^the pool from the promise 

      // query to the database 
      request.query(query, function (err, queryResult) { 
       if (err) { 
        console.log("Error while querying database :- " + err); 
        res.send(err); 
       } else { 
        res.send(queryResult); 
       } 
      }); 
      conn.close(); 
     });   
} 

connection poolクラスは、あなたの接続によって開始されたプールで解決する約束を、返されますあなたに ジェームズ

+0

あなたの文 'のsql =必要とする( "...?!?")が必要です含めることができますか;'? – drinchev

+0

@kumbhanibhavesh私が得るエラーはConnectionErrorです:接続はまだ開いていません。 – Amal

答えて

1

ありがとうございました接続そのもの。次のように

ドキュメントからの接続プールの基本的な例は次のとおりです。

new sql.ConnectionPool(config).connect().then(pool => { 
    return pool.query`select * from mytable where id = ${value}` 
}).then(result => { 
    console.dir(result) 
}).catch(err => { 
    // ... error checks 
}) 
+0

@drichevこんにちは、詳細を教えていただけますか? 私のrequire文は次のとおりです:** sql = require( "mssql"); ** つまり、DBプールを作成する必要がありますか? 私にそれを示してもらえますか? – Amal

+0

あなたがペーストしたものは、接続プールを作成してそれを使用してクエリとリクエストを作成することを望みます。それを作るには2つの方法があります。 Promiseで1、コールバックで2。プロミス(コールバック関数は提供されていません)と一緒に使用する場合、実際には、約束が解決された結果を 'pool'変数として取る必要があります。 – drinchev

+0

可能であれば、私のコードで同じものを表示するように編集してください。私はこれには新しいので、能力がないので、多くのことを把握することはできません。 – Amal

関連する問題