接上一篇TWaver HTML5 + Node.js + express + socket.io + redis(五), 这一篇将讲解如何用模版生成html页面, 如何验证用户登录, 您将了解到:
1. 模版引擎jade
2. 使用express的session功能
一. 用jade生成登陆界面
用express就不得不了解一下模版引擎, 比较流行的是jade和ejs, 这里以jade为例:
1. 安装jade:
npm install jade
2. 配置express使用jade
//设置express使用jade作为模版引擎
server.set('view engine', 'jade');
//设置jade模版的目录
server.set('views', __dirname + '/views');
3. 配置jade模版
在主程序目录创建views目录, 在views目录添加layout.jade文件(layout文件用于指定所有页面的模版), 内容如下:
!!! 5
html
include header
body!= body
再添加header.jade文件, 内容如下:
head
title TWaver HTML5 Demo
script(type='text/javascript', src='/socket.io/socket.io.js')
script(type='text/javascript', src='/twaver.js')
script(type='text/javascript', src='/demo.js')
4. 生成登陆界面和主界面
添加login.jade文件, 内容如下:
form(action='/login', method='post')
label Name:
input(name='name', type='text')
input(name='password', type='password')
input(type='submit', value='Login')
5. 添加登录和主页路由:
//添加登录路由
server.get('/login', function (req, res) {
res.render('login');
});
//添加主页路由
server.get('/', function (req, res) {
res.render('index');
});
启动node, 用浏览器打开http://localhost:8080/login, 看看效果:
再打开http://localhost:8080/, 内容和上一章看到的一样, demo目录的demo.html可以删掉了:
二. 配置express, 验证用户
1. 启用session, 表单和cookie解析功能
//设置表单和cookie解析器
server.use(express.bodyParser());
server.use(express.cookieParser());
//启用session
server.use(express.session({secret: 'anything', key: 'express.sid'}));
2. 添加登陆post路由, 将用户名信息存入session中
//登陆post路由
server.post('/login', function (req, res) {
var name = req.body.name;
var password = req.body.password;
req.session.user = name;
res.redirect('/');
});
3. 修改主页路由, 判断如果没有登陆就重定向到登陆界面:
server.get('/', function (req, res) {
if (req.session.user) {
res.render('index');
} else {
res.redirect('/login');
}
});
再用浏览器打开http://localhost:8080/, 会出现登陆界面, 输入任意非空用户名后, 即可登陆
本文完整demo见附件, 下一讲将介绍加密密码, 汉化i18n等内容
另外, 一个小技巧:客户端ji里生成socket时, 需要指定ip和端口, 如果是本机, 可以直接:socket = io.connect('http://' + location.hostname + '/', { port: location.port });
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com