mweibel / connect-session-sequelize

Sequelize SessionStore for Express/Connect
211 stars 70 forks source link

Warning: a promise was created in a handler but was not returned from it #127

Closed mpeltonen closed 2 years ago

mpeltonen commented 3 years ago

I could not yet reproduce this with connect-session-sequelize-example, but in my project I get log full of these warnings as Bluebird promise somehow ends up in the promisify -function of connect-session-sequelize.

Warnings disappear if I return null from this then: https://github.com/mweibel/connect-session-sequelize/blob/v7.1.1/lib/connect-session-sequelize.js#L22

jediborre commented 2 years ago

(node:41848) Warning: a promise was created in a handler at C:\Users\User\proyect\node_modules\express\lib\router\index.js:275:10 but was not returned from it, see http://goo.gl/rRqMUw at Function.Promise.attempt.Promise.try (C:\Users\User\proyect\node_modules\bluebird\js\release\method.js:29:9) at processImmediate (internal/timers.js:461:21) From previous event: at Function.update (C:\Users\User\proyect\node_modules\sequelize\lib\model.js:3097:23) at SequelizeStore.touch (C:\Users\User\proyect\node_modules\connect-session-sequelize\lib\connect-session-sequelize.js:150:12) at ServerResponse.end (C:\Users\User\proyect\node_modules\express-session\index.js:343:15) at ServerResponse.send (C:\Users\User\proyect\node_modules\express\lib\response.js:221:10) at ServerResponse.json (C:\Users\User\proyect\node_modules\express\lib\response.js:267:15) at C:\Users\User\proyect\routes\index.js:14:7 at Layer.handle [as handle_request] (C:\Users\User\proyect\node_modules\express\lib\router\layer.js:95:5) at next (C:\Users\User\proyect\node_modules\express\lib\router\route.js:137:13) at Route.dispatch (C:\Users\User\proyect\node_modules\express\lib\router\route.js:112:3) at Layer.handle [as handle_request] (C:\Users\User\proyect\node_modules\express\lib\router\layer.js:95:5) at C:\Users\User\proyect\node_modules\express\lib\router\index.js:281:22 at Function.process_params (C:\Users\User\proyect\node_modules\express\lib\router\index.js:335:12) at next (C:\Users\User\proyect\node_modules\express\lib\router\index.js:275:10) at Function.handle (C:\Users\User\proyect\node_modules\express\lib\router\index.js:174:3) at router (C:\Users\User\proyect\node_modules\express\lib\router\index.js:47:12) at Layer.handle [as handle_request] (C:\Users\User\proyect\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (C:\Users\User\proyect\node_modules\express\lib\router\index.js:317:13) at C:\Users\User\proyect\node_modules\express\lib\router\index.js:284:7 at Function.process_params (C:\Users\User\proyect\node_modules\express\lib\router\index.js:335:12) at next (C:\Users\User\proyect\node_modules\express\lib\router\index.js:275:10) at urlencodedParser (C:\Users\User\proyect\node_modules\body-parser\lib\types\urlencoded.js:91:7) From previous event: at promisify (C:\Users\User\proyect\node_modules\connect-session-sequelize\lib\connect-session-sequelize.js:21:23) at SequelizeStore.get (C:\Users\User\proyect\node_modules\connect-session-sequelize\lib\connect-session-sequelize.js:79:14) at session (C:\Users\User\proyect\node_modules\express-session\index.js:481:11) at Layer.handle [as handle_request] (C:\Users\User\proyect\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (C:\Users\User\proyect\node_modules\express\lib\router\index.js:317:13) at C:\Users\User\proyect\node_modules\express\lib\router\index.js:284:7 at Function.process_params (C:\Users\User\proyect\node_modules\express\lib\router\index.js:335:12) at next (C:\Users\User\proyect\node_modules\express\lib\router\index.js:275:10) at SessionStrategy.strategy.pass (C:\Users\User\proyect\node_modules\passport\lib\middleware\authenticate.js:343:9) at SessionStrategy.authenticate (C:\Users\User\proyect\node_modules\passport\lib\strategies\session.js:75:10) at attempt (C:\Users\User\proyect\node_modules\passport\lib\middleware\authenticate.js:366:16) at authenticate (C:\Users\User\proyect\node_modules\passport\lib\middleware\authenticate.js:367:7) at Layer.handle [as handle_request] (C:\Users\User\proyect\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (C:\Users\User\proyect\node_modules\express\lib\router\index.js:317:13) at C:\Users\User\proyect\node_modules\express\lib\router\index.js:284:7 at Function.process_params (C:\Users\User\proyect\node_modules\express\lib\router\index.js:335:12) at next (C:\Users\User\proyect\node_modules\express\lib\router\index.js:275:10) at initialize (C:\Users\User\proyect\node_modules\passport\lib\middleware\initialize.js:53:5) at Layer.handle [as handle_request] (C:\Users\User\proyect\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (C:\Users\User\proyect\node_modules\express\lib\router\index.js:317:13) at C:\Users\User\proyect\node_modules\express\lib\router\index.js:284:7 at Function.process_params (C:\Users\User\proyect\node_modules\express\lib\router\index.js:335:12) at next (C:\Users\User\proyect\node_modules\express\lib\router\index.js:275:10) at expressInit (C:\Users\User\proyect\node_modules\express\lib\middleware\init.js:40:5) at Layer.handle [as handle_request] (C:\Users\User\proyect\node_modules\express\lib\router\layer.js:95:5) (node:41848) Warning: a promise was created in a handler at C:\Users\User\proyect\node_modules\express\lib\router\index.js:275:10 but was not returned from it, see http://goo.gl/rRqMUw at Function.Promise.attempt.Promise.try (C:\Users\User\proyect\node_modules\bluebird\js\release\method.js:29:9) at processImmediate (internal/timers.js:461:21)

`app.js var path = require('path'); var bodyParser = require('body-parser'); var cookieParser = require('cookie-parser');

var express = require('express'); var session = require('express-session'); require('dotenv').config({path:'.env'}).parsed; var models = require("./models"); var passport = require('passport');

const db_sync = false; const app = express(); const env = process.env;

if (db_sync) models.sequelize.sync().then(() => { console.log('DB OK'); }).catch(err => { console.log("[DB] ERROR!!!", err); });

app.set('view engine', 'ejs'); app.set('views', path.join(__dirname, 'views'));

const SequelizeStore = require("connect-session-sequelize")(session.Store); const sessionStore = new SequelizeStore({db: models.sequelize});

app.use(cookieParser()); app.use(bodyParser.json({limit: '5mb', extended: true})) app.use(bodyParser.urlencoded({limit: '1mb', extended: true, parameterLimit: 10000000})); app.use(session({ secret: 'l0b0f3st!.', store: sessionStore, resave: false, saveUninitialized:false, checkExpirationInterval: 15 60 1000, expiration: 60 60 1000 }));

sessionStore.sync(); app.use(passport.initialize()); app.use(passport.session()); passport.use(models.Usuarios.createStrategy()); passport.serializeUser(models.Usuarios.serializeUser(usuario => {})); passport.deserializeUser(models.Usuarios.deserializeUser((cosa, done) => {console.log(cosa.red);}));

const api_Router = require('./routes/api'); const r404_route = require('./routes/404'); const menuRouter = require('./routes/menu'); const loginRouter = require('./routes/login'); const indexRouter = require('./routes/index'); const registrosRouter = require('./routes/registros'); const adminRouter = require('./routes/admin_route'); const expotalento_Router = require('./routes/expotalento'); const admin_expotalentoRouter = require('./routes/admin_expotalento_route');

app.use('/', indexRouter); app.use(loginRouter); app.use(registrosRouter); app.use(menuRouter); app.use(api_Router); app.use(expotalento_Router); app.use('/admin', adminRouter); app.use('/admin_expotalento', admin_expotalentoRouter); app.use(express.static(path.join(__dirname, 'public'))); app.use(function onError(err, req, res, next) { console.error(err.stack); if (req.xhr) res.status(500).send({error: 'WebApp Error!'}); else { res.statusCode = 500; res.render(err); next(err); } }); app.use(r404_route);

module.exports = app;`

//router/index.js` const env = process.env; const utils = require('../utils/utils'); const router = require('express').Router(); const Recaptcha = require('express-recaptcha').RecaptchaV2; const RECAPTCHA_SITE_KEY = '**'; const RECAPTCHA_SITE_SECRET = '**';

router.get('/', function(req, res, next) { if (req.user) res.redirect(utils.getRedirect(req.user.tipo)); else res.render('pages/expotalento_login_view', {pageTitle: utils.title + 'Inicio de Sesión', captcha: RECAPTCHA_SITE_KEY}); res.json({status: 'OK'}).end(); }); module.exports = router;`

mweibel commented 2 years ago

hi,

there's an example repo (documented in the README) which should be used to submit issues: https://github.com/mweibel/connect-session-sequelize-example

Please next time add a clear reproduction case with an example repository forked from my repository.

Closing for inactivity.