Mysql 如何在用户登录express会话后生成会话?

Mysql 如何在用户登录express会话后生成会话?,mysql,node.js,session,express,passport.js,Mysql,Node.js,Session,Express,Passport.js,我正在使用express.js、expressmysql会话和passport.js。express session中间件正在为静态文件请求(如登录页面)创建会话,登录页面正在会话表中创建另一个条目 我将静态中间件移到了express会话中间件之前。但是,当我在会话中间件之前移动静态中间件之后发出登录请求时,passport会抛出一个错误“passport.initialize middlware not in use” 我猜这可能是因为请求中没有“connect.sid”cookie 这就是我

我正在使用express.js、expressmysql会话和passport.js。express session中间件正在为静态文件请求(如登录页面)创建会话,登录页面正在会话表中创建另一个条目

我将静态中间件移到了express会话中间件之前。但是,当我在会话中间件之前移动静态中间件之后发出登录请求时,passport会抛出一个错误“passport.initialize middlware not in use”

我猜这可能是因为请求中没有“connect.sid”cookie

这就是我的configure函数的样子

app.configure(function () {
  app.set('mode', process.argv[2] || 'local');
  app.set('port', config.port || 8080);
  app.use(express.favicon(__dirname + '/public/favicon.ico'));
  app.use(express.logger('dev'));
  app.use(express.methodOverride());
  app.use(express.static(path.join(__dirname, 'public')));
  app.use(express.cookieParser());
  app.use(express.json());
  app.use(express.urlencoded());
  // this is a route handler for serving public file incase user doesn't have session
  app.get("/*", policies.publicRoute.handleRoute());

  app.use(busboy({
    limits: {
      fileSize: maxFileSize,
      files : 1
    }
  }));

  //create session store
  var sessionStore = new SessionStore({}, connection);
  // required for passport
  app.use(express.session({
    secret: 'mySecret',
    cookie: { maxAge : myNumber },
    store: sessionStore,
    resave: true,
    saveUninitialized: true
  }));

  app.use(passport.initialize());
  app.use(passport.session());
});

我想你需要显示app.js文件的相关部分。FWIW通常的顺序是这样的:
app.use(passport.initialize());app.use(passport.session())(…并确保您的身体分析在所有这些之前)。我已经添加了我的app.configure功能。当请求对象没有connect.sid cookie属性时,会发生passport.initialize错误。