进行session存储时需引用中间件,app.js
1 2 3 4 5 6 7 8 9 10 11 | var express=require( 'express' ); var app=express(); var cookieParser = require( 'cookie-parser' ); var session = require( 'express-session' ); app.use(cookieParser( 'sessiontest' )); app.use(session({ secret: 'sessiontest' , //与cookieParser中的一致 resave: false , saveUninitialized: true })); |
具体配置项可以查看相应文档进行了解
/*设置完毕后进行路由设置,注意先后顺序,路由设置应放在cookie及session设置之后*/
app.use('/public',express.static(staticDir));
app.use('/page',require('./routes/web-page'));
路由控制文件 web-page.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | var express=require( 'express' ); var router=express.Router(); var userModel=require( '../modules/user' ).user; //user表 var deviceModel=require( '../modules/device' ).device; var bodyParser = require( 'body-parser' ); router.post( '/login' , function (req,res) { var user=req.body.user; var code=req.body.password; userModel.authenticate(user,code, function (err,data) { if (err) res.send({status:-1,msg:err.name}); if (data.status==0){ var userInfo={name:data.msg.name,role:data.msg.role,limit:data.msg.limit}; console.log(userInfo); req.session.user=userInfo; //设置session res.send({status:0,msg: '成功' }); } else { res.send(data); } }); }); router.get( '/header' , function (req, res) { if (req.session.user){ res.render( 'header' ,{userName:req.session.user.name,roleName:req.session.user.role}); //将session中的值通过模板渲染,然后在页面中显示 } else { res.render( 'header' ,{userName: 'test' ,roleName: 'test' }); } }); |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步