2014-09-05 42 views
0

我是node.js的新手。當用戶登錄並在用戶註銷時結束會話時應如何啓動會話?如何在用戶登錄時啓動會話並在用戶註銷時結束會話

請注意,這個應用程序的環境:

  1. 我使用Windows
  2. NPM,快速
  3. 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')); 
}); 

這是常規g文件(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}); 

     }); 
    }); 
}; 

回答

0

如果您使用會話,這非常簡單。

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>); 

這樣,您就可以登錄用戶,並設置其供以後使用的用戶名在會議並記錄出來以同樣的方式。

相關問題