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

时间:2017-07-19 12:59:20

标签: javascript mysql node.js

我是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');
});

1 个答案:

答案 0 :(得分:3)

查询后你没有发布mySQL连接。因此,当第二次激活另一个连接时,您不止一次调用connect()。