nodejs中的mysql函数只是第一次工作

我在node.js新手我写了一个userModel模块来使用MySQL做数据库的东西,工作正常,但只是第一次。 当我刷新页面mysql数据返回null

userModel.js //我的模块

 var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "root", password: "", database: "database" }); module.exports = { allUsers: function (callback) { con.connect(function (err1) { if (err1){ return callback(err1, null); } con.query("SELECT * FROM users", function (err2, result, fields) { if (err2){ return callback(err2, null); } callback(err2, result); }); }); } }; 

app.js //主要的js文件

 var express = require('express'), bodyParser = require('body-parser'), _ = require('underscore'); var app = express(); var port = process.env.PORT || 8080; var User = require('./models/userModels'); var bookRouter = express.Router(); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended:true})); bookRouter.route('/books') .get(function (req, res) { User.allUsers(function (err, results) { var id = req.query.id; var somre = _.find(results , function (param) { //result is null in second refresh return param['id'] == id; }); console.log(results); res.send(somre); }); }) app.use('/api' , bookRouter) app.get('/' , function (req , res) { res.send('welcome to my API'); }); 

查询之后,您不会释放mySQL连接。 因此,当第二次激活另一个连接时,您将多次调用connect()。