2016-12-09 5 views
0

Я новичок в node.js и пытаюсь использовать «экспресс-сеанс» для создания и хранения сеанса, заголовок - это ошибка, а ниже - мой код. Я проверяю исходный код на github, но не нашел никакого вопроса. PLS помочь, большое вам спасибо.TypeError: Не удается прочитать свойство «регенерировать» неопределенного

User.prototype.login = function (req, res, next) { 

    pool.getConnection(function (err, connection) { 
     // 获取前台页面传过来的参数 
     var user_name = req.param("user_name"), 
      password = req.param('password'); 

     // 建立连接,向表中插入值 
     var select = mysql.format(user_command.login, user_name); 
     connection.query(select, function(err, result) { 
      if(result) { 
       if(result[0].password === password){ 
        req.session.regenerate(function() { 
         if(err){ 
          res.json({ret_code: 2, ret_message:'登陆失败' }); 
         } 
         res.sessionID = user_name; 
         res.json({ret_code: 0, ret_msg: '登录成功'}); 
        }); 
       }else { 
        res.redirect('/login'); 
       } 
      } 
      // 释放连接 
      connection.release(); 
     }); 

    }); 

};

+0

Нет функции 'req.session.regenerate'. Вы пытаетесь это назвать. Ошибка. – nicovank

+0

спасибо человеку, но функция находится в документе «экспресс-сессия», поэтому я действительно не понимаю. вы можете найти функцию в ссылке: https://github.com/talentAN/session –

+0

У вас есть где-то в вашем коде 'app.use (session ('? – nicovank

ответ

0

Экспресс-промежуточное программное обеспечение выполнено в том порядке, в котором вы их определяете. Ваша проблема в том, что вы установили app.use('./', routes) до app.use(session(...)).

Чтобы исправить это, просто переместите первую строку после второго.

app.use(session({ 
    // ... 
}); 

app.use('./', routes); 
Смежные вопросы