使用nodejs和html进行登录和注销会话

使用nodejs和html进行登录和注销会话,html,node.js,session,Html,Node.js,Session,我想使用nodejs服务器和html作为前端开发一个登录和注销会话 我的代码在下面 server.js var express = require('express'); var session = require('express-session'); var bodyParser = require('body-parser'); var app = express(); app.use(express.static(_

我想使用nodejs服务器和html作为前端开发一个登录和注销会话 我的代码在下面 server.js

var express     =   require('express');  
var session     =   require('express-session');  
var bodyParser      =   require('body-parser');  
var app         =   express();

app.use(express.static(__dirname + '/public'));
app.set('views', __dirname + '/views');
app.engine('html', require('ejs').renderFile);

app.use(session({secret: 'ssshhhhh',saveUninitialized: true,resave: true}));
app.use(bodyParser.json());      
app.use(bodyParser.urlencoded({extended: true}));

var sess;

app.get('/',function(req,res){  
    sess=req.session;  
    if(sess.email)  
    {  
        res.redirect('/admin');  
    }  
    else{  
    res.render('index.html');   
    }  
});

app.post('/login',function(req,res){  
    sess=req.session;     
    sess.email=req.body.email;  
    res.end('done');  
});

app.get('/admin',function(req,res){  
    sess=req.session;  
    if(sess.email)      
    {   
        //res.render('lg.html');  
        res.write('<h1>Hello '+sess.email+'</h1><br>');  
        res.end('<a href='+'/logout'+'>Logout</a>');  
    }  
    else  
    {  
        res.write('<h1>Please login first.</h1>');    
        res.end('<a href='+'/'+'>Login</a>');    
    }    

});  

app.get('/logout',function(req,res){    
    req.session.destroy(function(err){  
        if(err){  
            console.log(err);  
        }  
        else  
        {  
            res.redirect('/');  
        }  
    });  

});  
app.listen(3000,function(){  
    console.log("App Started on PORT 3000");  
}) 
var express=require('express');
var会话=需要(“快速会话”);
var bodyParser=require('body-parser');
var-app=express();
app.use(express.static(uu dirname+/public));
app.set('views','u dirname+'/views');
app.engine('html',require('ejs').renderFile);
使用(会话({secret:'ssshhhh',saveUninitialized:true,resave:true});
use(bodyParser.json());
use(bodyParser.urlencoded({extended:true}));
var-sess;
app.get('/',函数(req,res){
sess=请求会话;
如果(sess.email)
{  
res.redirect('/admin');
}  
否则{
res.render('index.html');
}  
});
app.post('/login',函数(req,res){
sess=请求会话;
sess.email=req.body.email;
res.end(“完成”);
});
app.get('/admin',函数(req,res){
sess=请求会话;
如果(sess.email)
{   
//res.render('lg.html');
res.write('Hello'+sess.email+'
'); res.end(“”); } 其他的 { res.write('请先登录'); res.end(“”); } }); app.get('/logout',函数(req,res){ 请求会话销毁(函数(错误){ 如果(错误){ 控制台日志(err); } 其他的 { res.redirect('/'); } }); }); app.listen(3000,函数(){ console.log(“应用程序在端口3000上启动”); })

代码运行良好,登录和注销都正常,但我的问题是当我登录时,如果我通过放置注销按钮将管理页面重定向到我的html页面,我将无法从那里注销。请帮助我。

我可以查看index.html文件吗?感谢您的响应。我解决了此问题,但现在我遇到了另一个问题,当用户注销会话时,他应该不能执行任何操作。会话应该被禁用。如果对此有任何想法,那么help me out.does req.session.destroy()将有助于使会话禁用而不执行任何其他操作。您应该给出如何修复会话的答案,它将帮助其他有同样问题的人