2014-11-02 44 views
0

我宣佈mysql第一次查詢後獲得500錯誤,我在app.js連接,像這樣:的NodeJS和MySQL

var mysql = require('mysql'); 
var connection = mysql.createConnection({ 
    host: '192.168.1.75', 
    user: 'dev', 
    password: 'devaccount', 
    database: 'PugIt' 
}); 

app.set('connection', connection); 

在我User.js登記我:

router.route('/register/steam/finish') 
    .get(function(req, res) { 
     res.render('user/register_steam'); 
    }) 
    .post(function(req, res) { 
     var connection = req.app.get('connection'); 
     connection.connect(); 

     // Look For Users 
     connection.query("SELECT * FROM Users", function(err, rows, fields) { 
      console.log('We Found Something!'); 
     }); 

     connection.end(); 
    }); 

當頁面第一次加載,我打寄存器,它工作正常,但如果我第二次按下按鈕,我的服務器上出現500錯誤。

但是,如果我手動聲明var connection裏面每個route文件,這不會發生。

爲什麼我不能與MySQL使用req.app.get,我用這個方法時,我用MongoDB這真是棒極了這種方式,我曾在app.js一個主要的配置,我可以改變,如果我需要在所有路線的文件改變。不知道爲什麼,我在第二POST

回答

1

得到一個500錯誤我覺得connection.connect()connection.end()每個POST請求導致的問題。放下這兩條線,你應該很好走。通過這種方式,連接只能建立一次,所有請求都可以重複使用相同的連接,而不需要經常試圖將其斷開並重新恢復。

如果您發現自己需要更高的數據庫查詢併發性,那麼也可以使用create a pool of mysql connections

+0

謝謝,我是MySQL新手,我認爲這是一個安全問題,在每個查詢後都保持打開狀態 – Datsik 2014-11-02 04:20:29