2016-08-09 104 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连接来修复它。 –