2016-08-09 138 views
0

我有一個index.js路由文件:的Node.js服務器超時

var express = require('express'); 
    var router = express.Router(); 
    var connection = require('../connection'); 

    /* GET home page. */ 
    router.get('/', function(req, res) { 
     res.render('layout', { title: 'Movieseat' }); 

     connection.connect(); 
     connection.query('SELECT * FROM `users` WHERE `first_name` = "Kees"', function(error, results){ 
      console.log(
     connection.end(); 
    }); 

    module.exports = router; 

這需要我connection.js文件:

// make a mysql connection to the database 
    var mysql = require('mysql'); 

    var connection = mysql.createConnection({ 
     host  : 'us-cdbr-***-east-04.cleardb.net', 
     user  : 'bfe4****0ede74', 
     password : '674****9', 
     database : 'heroku_****4ee0f0e9102' 
    }); 

    module.exports = connection; 

當我開始我的服務器它的工作原理很好,但是當我重新加載我的本地主機並執行router.get('/', function(req,res)它從數據庫返回正確的記錄。但隨後30秒後,服務器出現以下錯誤崩潰:

events.js:

throw er; // Unhandled 'error' event

Error: Quit inactivity timeout

+0

[這個問題](https://github.com/mysqljs/mysql/issues/1223)可能會幫助 – kiro112

+0

它確實有點幫助。我已經結束了使用MySql池,現在它似乎更好。 http://www.thegeekstuff.com/2014/01/mysql-nodejs-intro/來源。 –

回答

0

的問題是在你的代碼。

var express = require('express'); 
var router = express.Router(); 
var connection = require('../connection'); 

/* GET home page. */ 
router.get('/', function(req, res) { 
    res.render('layout', { title: 'Movieseat' }); 

    connection. 
    connection.query('SELECT * FROM `users` WHERE `first_name` = "Kees"', function(error, results){ 
     console.log(
    connection.end(); 
}); 

module.exports = router; 

您忘記關閉連接。我和node-postgres一樣,並且每次查詢數據庫後關閉連接都很重要。

問候,拉法爾

+0

嘿拉法爾,我不知道爲什麼我的'connection.connect()'和'connection.end()'在的werent我的問題正確coppied(我現在已經editted它),但是這是沒有問題的。我通過彙集mysql連接來修復它。 –