TWaver - 專注UI技術(shù)

          http://twaver.servasoft.com/
          posts - 171, comments - 191, trackbacks - 0, articles - 2
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
          @import url(http://www.aygfsteel.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
          接上一篇TWaver HTML5 + Node.js + express + socket.io + redis(五), 這一篇將講解如何用模版生成html頁面, 如何驗(yàn)證用戶登錄, 您將了解到:
          1. 模版引擎jade
          2. 使用express的session功能
          一. 用jade生成登陸界面
          用express就不得不了解一下模版引擎, 比較流行的是jadeejs, 這里以jade為例:
          1. 安裝jade:
          npm install jade

          2. 配置express使用jade
          1 //設(shè)置express使用jade作為模版引擎
          2 server.set('view engine', 'jade');
          3 //設(shè)置jade模版的目錄
          4 server.set('views', __dirname + '/views');

          3. 配置jade模版
          在主程序目錄創(chuàng)建views目錄, 在views目錄添加layout.jade文件(layout文件用于指定所有頁面的模版), 內(nèi)容如下:
          1 !!! 5
          2 html
          3   include header
          4   body!= body
          再添加header.jade文件, 內(nèi)容如下:
          1 head
          2   title TWaver HTML5 Demo
          3   script(type='text/javascript', src='/socket.io/socket.io.js')
          4   script(type='text/javascript', src='/twaver.js')
          5   script(type='text/javascript', src='/demo.js')

          4. 生成登陸界面和主界面
          添加login.jade文件, 內(nèi)容如下:
          1 form(action='/login', method='post')
          2   label Name:
          3   input(name='name', type='text')
          4   input(name='password', type='password')
          5   input(type='submit', value='Login')
          再添加index.jade文件, 內(nèi)容如下:
          1 body(onload="init()")

          5. 添加登錄和主頁路由:
          1 //添加登錄路由
          2 server.get('/login', function (req, res) {
          3     res.render('login');
          4 });
          5 //添加主頁路由
          6 server.get('/', function (req, res) {
          7     res.render('index');
          8 });
          9 
          啟動(dòng)node, 用瀏覽器打開http://localhost:8080/login, 看看效果:
          再打開http://localhost:8080/, 內(nèi)容和上一章看到的一樣, demo目錄的demo.html可以刪掉了:

          二. 配置express, 驗(yàn)證用戶
          1. 啟用session, 表單和cookie解析功能
          1 //設(shè)置表單和cookie解析器
          2 server.use(express.bodyParser());
          3 server.use(express.cookieParser());
          4 //啟用session
          5 server.use(express.session({secret: 'anything', key: 'express.sid'}));
          6 

          2. 添加登陸post路由, 將用戶名信息存入session中
          1 //登陸post路由
          2 server.post('/login', function (req, res) {
          3     var name = req.body.name;
          4     var password = req.body.password;
          5     req.session.user = name;
          6     res.redirect('/');
          7 });
          8 

          3. 修改主頁路由, 判斷如果沒有登陸就重定向到登陸界面:
          1 server.get('/', function (req, res) {
          2     if (req.session.user) {
          3         res.render('index');
          4     } else {
          5         res.redirect('/login');
          6     }
          7 });
          再用瀏覽器打開http://localhost:8080/, 會(huì)出現(xiàn)登陸界面, 輸入任意非空用戶名后, 即可登陸

          本文完整demo見附件, 下一講將介紹加密密碼, 漢化i18n等內(nèi)容
          另外, 一個(gè)小技巧:客戶端ji里生成socket時(shí), 需要指定ip和端口, 如果是本機(jī), 可以直接:socket = io.connect('http://' + location.hostname + '/', { port: location.port });


          評(píng)論

          # re: TWaver HTML5 + Node.js + express + socket.io + redis(六)  回復(fù)  更多評(píng)論   

          2012-04-03 12:51 by 分紅商城
          我想學(xué)習(xí)nodejs。不過不知道使用什么nosql數(shù)據(jù)庫比較好。能推薦一個(gè)嗎?

          # re: TWaver HTML5 + Node.js + express + socket.io + redis(六)  回復(fù)  更多評(píng)論   

          2012-04-03 13:24 by TWaver
          MongoDB(http://www.mongodb.org)和Reids(http://redis.io)都可以考慮下

          # re: TWaver HTML5 + Node.js + express + socket.io + redis(六)  回復(fù)  更多評(píng)論   

          2012-05-23 15:42 by 學(xué)習(xí)nodejs
          學(xué)習(xí),能繼續(xù)講講加密密碼嗎

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 永丰县| 泸溪县| 调兵山市| 余庆县| 金阳县| 拜泉县| 高阳县| 盐亭县| 盐池县| 星子县| 岳普湖县| 临邑县| 清远市| 读书| 盐池县| 麦盖提县| 榆中县| 彝良县| 安远县| 漳平市| 颍上县| 大厂| 甘泉县| 冷水江市| 乌拉特前旗| 托克托县| 本溪| 泰和县| 岳普湖县| 奉节县| 台东市| 若尔盖县| 五大连池市| 稻城县| 宁安市| 廉江市| 德钦县| 宜兰市| 达拉特旗| 崇义县| 翁源县|