簡體   English   中英

關於node.js mySQL模塊中connection.end()如何工作的困惑

[英]confusion about how connection.end() works in node.js mySQL module

const mysql = require('mysql'); 
let connection = mysql.createConnection(...);
        connection.connect((err)=>{
           ...
           connection.query((err)=>{
           ...
           connection.end();});
        });

在我使用關閉連接后

connection.end()

,如果我想使用相同的憑據再次查詢數據庫,是否需要通過調用來建立新連接

mysql.createConnection(...)

或者我可以通過簡單地調用來重用相同的連接

connection.connect(...)

一點背景知識:我正在將angular / node.js應用程序部署到共享托管網站,並且該虛擬主機最大限制為25個並發連接到mySQL數據庫,因此我需要確保在用戶進行查詢。 我不確定在關閉該連接后是否可以重用mysql.createConnection(...)創建的連接,還是需要創建一個全新的連接。

您可以使用一個全局連接從db獲取數據。

如果您處理單個文件,則可以寫為

app.js僅一個文件

 var mysql      = require('mysql');
 var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {
     if (error) throw error;
   // connected!
  });

如果要在多個文件中使用相同的連接,則可以編寫為
app.js

 app.use(  
    connection(mysql, {
         host: xxxxx, 
         user: 'root',
         password : xxxx, 
         port : 3306, 
         database:dbname

     },'pool'),  
   );

  var oem = require('./routes/type');
  app.get('/api/oemtype',oem.type);

對於第二個文件type.js

   exports.type = function(req, res){

     req.getConnection(function(err,connection){

      var query = connection.query('SELECT * FROM type',function(err,rows)
      {
          if(err)
          res.json({
            status:0
        });

              res.send(rows);
         res.render('customers',{page_title:"Customers - Node.js",data:rows});


       });

  });

   };

無需使用connection.end()。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM