From 57166dc3d3d1069755d9d331da6c5d86426272b4 Mon Sep 17 00:00:00 2001 From: Elliot Sturzaker Date: Fri, 7 Jun 2019 14:48:02 +1200 Subject: [PATCH] implements a connection pool. You aren't supposed to end the connection object with every request. --- config/passport.js | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/config/passport.js b/config/passport.js index b9531a7..bd3465f 100644 --- a/config/passport.js +++ b/config/passport.js @@ -7,10 +7,10 @@ var LocalStrategy = require('passport-local').Strategy; var mysql = require('mysql'); var bcrypt = require('bcrypt-nodejs'); var dbconfig = require('./database'); -var connection = mysql.createConnection(dbconfig.connection); -connection.connect(); +var connection = mysql.createPool(dbconfig.connection); + connection.query('USE ' + dbconfig.database); -connection.end(); + // expose this function to our app using module.exports module.exports = function(passport) { @@ -27,11 +27,9 @@ module.exports = function(passport) { // used to deserialize the user passport.deserializeUser(function(id, done) { - connection.connect(); connection.query("SELECT * FROM users WHERE id = ? ",[id], function(err, rows){ done(err, rows[0]); }); - connection.end(); }); // ========================================================================= @@ -51,10 +49,10 @@ module.exports = function(passport) { function(req, username, password, done) { // find a user whose email is the same as the forms email // we are checking to see if the user trying to login already exists - connection.connect(); connection.query("SELECT * FROM users WHERE username = ?",[username], function(err, rows) { if (err) return done(err); + connection.destroy(); if (rows.length) { return done(null, false, req.flash('signupMessage', 'That username is already taken.')); } else { @@ -66,16 +64,12 @@ module.exports = function(passport) { }; var insertQuery = "INSERT INTO users ( username, password ) values (?,?)"; - connection.connect(); connection.query(insertQuery,[newUserMysql.username, newUserMysql.password],function(err, rows) { newUserMysql.id = rows.insertId; - return done(null, newUserMysql); }); - connection.end(); } }); - connection.end(); }) ); @@ -94,7 +88,6 @@ module.exports = function(passport) { passReqToCallback : true // allows us to pass back the entire request to the callback }, function(req, username, password, done) { // callback with email and password from our form - connection.connect(); connection.query("SELECT * FROM users WHERE username = ?",[username], function(err, rows){ if (err) return done(err); @@ -109,7 +102,6 @@ module.exports = function(passport) { // all is well, return successful user return done(null, rows[0]); }); - connection.end(); }) ); };