[英]Node.js ExpressJs Create Session
如何在expressjs(4.0)中创建会话?
我在链接中做的完全一样
var session = require('express-session');
/* session */
app.use(session({ secret: '1s2sd25asd7asd5asd7f4f1f'}))
但是,它给出了错误?
TypeError: Cannot read property 'connect.sid' of undefined
如何在expressjs中创建会话? 我已经尝试创建会话3天了。
在Express 4中,像这样创建会话
var express = require('express');
var app = express();
var cookieParser = require('cookie-parser');
var session = require('express-session');
您必须在会话之前使用cookieParser
app.use(cookieParser())
app.use(session({secret: 'MySecret'}));
有关更多信息, 请在此处阅读connect官方文档
完整的代码:
var express = require('express');
var session = require('express-session');
var bodyParser = require('body-parser');
var app = express();
app.set('views', __dirname + '/views');
app.engine('html', require('ejs').renderFile);
app.use(session({secret: 'ssshhhhh'}));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
var sess;
app.get('/',function(req,res){
sess=req.session;
//Session set when user Request our app via URL
if(sess.email)
{
/*
* This line check Session existence.
* If it existed will do some action.
*/
res.redirect('/admin');
}
else{
res.render('index.html');
}
});
app.post('/login',function(req,res){
sess=req.session;
//In this we are assigning email to sess.email variable.
//email comes from HTML page.
sess.email=req.body.email;
res.end('done');
});
app.get('/admin',function(req,res){
sess=req.session;
if(sess.email)
{
res.write('
<h1>Hello '+sess.email+'</h1>
');
res.end('<a href="+">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");
});
在这里阅读: http : //codeforgeek.com/2014/09/manage-session-using-node-js-express-4/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.