zoukankan      html  css  js  c++  java
  • TWaver HTML5 + Node.js + express + socket.io + redis(六)

    接上一篇TWaver HTML5 + Node.js + express + socket.io + redis(五), 这一篇将讲解如何用模版生成html页面, 如何验证用户登录, 您将了解到:

    1. 模版引擎jade
    2. 使用express的session功能

    一. 用jade生成登陆界面
    用express就不得不了解一下模版引擎, 比较流行的是jadeejs, 这里以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 });

  • 相关阅读:
    mysql安装问题
    决策树算法实现
    安装scipy失败提示lapack not found
    算法复杂度分析中的符号(Θ、Ο、ο、Ω、ω)简介
    VMware 注册码
    chrome浏览器频繁卡死
    dell装系统
    关于scipy包的安装
    pip安装python包时报字符编码错
    linux中mv命令使用详解
  • 原文地址:https://www.cnblogs.com/twaver/p/2413992.html
Copyright © 2011-2022 走看看