Mysql 如何在用户登录时启动会话,在用户注销时结束会话

Mysql 如何在用户登录时启动会话,在用户注销时结束会话,mysql,node.js,express,npm,ejs,Mysql,Node.js,Express,Npm,Ejs,我是node.js的新手。在用户登录时如何启动会话,在用户注销时如何结束会话 请注意此应用程序的环境: 我正在使用Windows NPM,快车 用于节点的MySQL 这是我的app.js文件: var express = require('express'); var routes = require('./routes'); var http = require('http'); var path = require('path'); var customers = require('./ro

我是node.js的新手。在用户登录时如何启动会话,在用户注销时如何结束会话

请注意此应用程序的环境:

我正在使用Windows NPM,快车 用于节点的MySQL 这是我的app.js文件:

var express = require('express');
var routes = require('./routes');
var http = require('http');
var path = require('path');
var customers = require('./routes/customers'); 
var app = express();
var connection  = require('express-myconnection'); 
var mysql = require('mysql');
app.set('port', process.env.PORT || 4300);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(express.static(path.join(__dirname, 'public')));
if ('development' == app.get('env')) {
  app.use(express.errorHandler());
}
app.use(
    connection(mysql,{
        host: 'localhost',
        user: 'root',
        password : '',
        //port : 3306, //port mysql
        database:'nodejs'
    },'pool') //or single
);
app.get('/', customers.login);
app.get('/login', customers.login);
app.post('/login', customers.checklogin);
app.get('/logout', customers.logout);
app.use(app.router);
http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});
这是路由文件customers.js:

exports.logout = function(req, res){
    var messages = '';
    res.render('login',{page_title:"Login",message: messages});
};
exports.checklogin = function(req,res){
    var loginInput = JSON.parse(JSON.stringify(req.body));
    req.getConnection(function (err, connection) {
        var username    = loginInput.username;
        var pswd        = loginInput.pswd;
        var query = connection.query("SELECT * FROM users WHERE username = ? AND pswd = ? ",[username,pswd], function(err,rows)
        {
            var messages = 'Username/Password is wrong. Try again.';
            res.render('login',{page_title:"Login",message: messages});

        });
    });
};

如果您正在使用会话,那么它非常简单

app.post('/login', function(req, res, next) {
    if(err) return next(err)
    if(authenticate(req.body.username, req.body.password) req.session.user = {login: true, username: req.body.username }
    res.render(<Some file you want to send to user>);
}

app.get('/logout', function(req, res, next) {
    if(err) return next(err)
    req.session.user = {login: false, username = null}
    res.render(<Some file you want to send to user>);
通过这种方式,您可以登录用户并设置其用户名,以便以后在会话中使用,然后以相同的方式将其注销