zoukankan      html  css  js  c++  java
  • CMS3.0——初次邂逅express

    前言:     

    刚接手cms3.0的工作,似乎对一切都那么的不熟悉,于是在开始新需求之前,先做一个简单的登录系统。

    项目目录:

    1.使用webstroms建expreess项目,非常方便简单,建好的项目目录就是这样子的:

                                                                                                         

    /bin: 用于应用启动

    /public: 静态资源目录

    /routes:可以认为是controller(控制器)目录

    /views: jade/ejs/html模板目录,可以认为是view(视图)目录

    app.js 程序main文件

    2.在文件夹bin下面找www,右键单击Run 'binwww',即可看到控制台输出“server Listening on port 3000 +0ms”,然后在浏览器输入“localhost:3000”就可以看见页面上“Hello Express”的字样;

    3.在建项目之初,选用的模板是ejs或者jade,在这里为了方便,我们需要把模板改成常用的,挑一种来说,这是修改app.js文件中的代码:

    ...
    var app = express();
    
    // view engine setup
    // app.set('views', path.join(__dirname, 'views'));
    // app.set('view engine', 'jade');
    
    // 设置模板引擎从jade为html
    // view engine setup
    app.set('views', path.join(__dirname, 'views'));
    var template = require('arttemplate-gg');
    template.config('base', '');
    template.config('extname', '.html');
    app.engine('.html', template.__express);
    app.set('view engine', 'html');
    ...

    最后还需要吧views文件夹底下的页面全部修改成.html结束的文件。这样基本的框架才搭建出来了;

    4.项目中所需的静态文件,比如jQuery、图片、插件、样式文件统一放在public对应的文件夹底下;

    5.在views文件夹底下总共建4个页面:

    ①err.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title></title>
    </head>
    <body>
    
    <h1>{{message}}</h1>
    <h2> {{error.status}}</h2>
    <pre>{{error.stack}}</pre>
    
    </body>
    </html>

    ②home.html

    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>欢迎登录@@@@@@@@@@</title>
    </head>
    <body>
    欢迎登录
    </body>
    </html>

    ③index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <link href="/public/stylesheets/bootstrap.min.css" rel="stylesheet" media="screen">
      <title></title>
    </head>
    <body>
    <p>我是index页面~~~</p>
    <script src="/public/javascripts/jquery.min.js"></script>
    <script src="/public/javascripts/bootstrap.min.js"></script>
    </body>
    </html>

    ④login.html

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>用户登录</title>
        <style>
            *{ margin:0px; padding:0px; list-style:none;}
            body,html{ height:100%;font:12px/1.5 5FAE8F6F96C59ED1,tahoma,arial,sans-serif;}
            html{ background:url(/images/bg.png) repeat-x;}
            body{ background:url(/images/ftbg.png) 0 bottom repeat-x;}
            .main{ background:url(/images/mbg.png) no-repeat center bottom;position: absolute;width:100%;height:500px;top:50%;
                margin-left:0;margin-top:-290px; z-index:99}
            .loginbox{ width:410px;  height:375px;background:url(/images/borderbg.png); position: absolute; left:50%; top:50%; margin-left:-200px; margin-top:-200px; border-radius:8px;-moz-border-radius: 8px; -webkit-border-radius:8px; z-index:999;}
            .loginbg{ width:310px;padding:40px; margin:0 auto; margin-top:10px; background-color:#fff; border-radius:8px;-moz-border-radius: 8px; -webkit-border-radius:8px;}
            .loginbox h3{ font-size:18px; font-weight:normal; color:#333; padding-bottom:15px; text-align:center;}
            .loginbox input{ width:260px; height:46px; border:1px solid #dbdbdb; padding:0 5px; font-size:14px; color:#666;border-radius:5px rgba(0,0,0,0.5);-moz-border-radius: 5px; -webkit-border-radius:5px; padding-left:45px; line-height:46px;}
            .loginbox ul li{ padding:15px 0; position:relative;}
            .loginbox .user{ background:url(/images/lgicon.png) 0 0 no-repeat; display:inline-block; position:absolute; width:19px; height:20px; left:15px; top:27px;}
            .loginbox .pwd{ background:url(/images/lgicon.png) 0 bottom no-repeat; display:inline-block; position:absolute; width:19px; height:22px; left:15px; top:27px;}
            .loginbox input.lgbtn{ width:312px; background-color:#f86c6b; border:0px; color:#fff; font-size:18px; font-family:5FAE8F6F96C59ED1;line-height:46px; text-align:center; cursor:pointer; text-indent:0px; padding:0px;}
            .main h2{ margin-top:-40px; font-size:30px; text-align:center; color:#fff; font-weight:normal;}
            .footer{ position:fixed; z-index:9; bottom:0px; text-align:center; color:#666; width:100%; padding-bottom:20px; font-size:14px;}
        </style>
    </head>
    <body>
    <div class="main">
        <h2>小小登录窗口</h2>
        <div class="loginbox">
            <div class="loginbg">
                <h3>测试登录</h3>
                <form id="fm" action="/" method="post">
                    <ul>
                        <li><span class="user" ></span><input type="text" id="username" name="username"  value=""></li>
                        <li><span class="pwd" ></span><input type="password" id="password" name="password" required="true" value=""><span style="color: red;position: absolute;top: 70px;left: 10px" id="msg">{{msg}}</span></li>
                        <li><input type="submit" value="登录" class="lgbtn"/></li>
                    </ul>
                </form>
            </div>
        </div>
    </div>
    <div class="footer">Come on 测试一下~~~</div>
    <script type="text/javascript" src="/plugin/jquery-easyui-1.4.3/jquery.min.js"></script>
    <script type="text/javascript" src="/plugin/jquery-easyui-1.4.3/jquery.easyui.min.js"></script>
    <script type="text/javascript" src="/plugin/jquery-easyui-1.4.3/locale/easyui-lang-zh_CN.js"></script>
    </body>
    </html>

    6.所对应的js文件——routes底下的index.js

    /**
     * created 2016-11-01
     * 
     */
    
    var express = require('express');
    var router = express.Router();
    
    
    /* GET home page. */
    router.get('/', function (req, res, next) {
        res.render('login', {title: 'Express'});
    });
    // 自定义方法
    router.post('/', function (req, res, next) {
        var username = req.body.username;
        var password = req.body.password;
        var user={
            username:'admin',
            password:'admin'
        };
        if(username == user.username && password == user.password){
            console.log("验证正确");
            res.render('home', {title: 'Express'});
        } else {
            console.log("验证失败");
            res.render('login', {msg: '用户名或密码错误!'});
        }
    });
    
    
    module.exports = router;

    最终的效果就是: 

    7.由于js中定义了账号和密码都为admin,因此只有输入值为admin时,才可以跳转到

     

                                                                        如左图的页面,否则就是

     

     

    提示的错误信息~

     

  • 相关阅读:
    Window下安装Python
    使用Docker构建一个简单的nginx网页镜像
    solr通过界面管理删除索引和重建索引
    solr8.6添加中文分词器
    php使用solr基础代码类
    window下载安装solr及测试
    Eclipse Android 手机开发作业---心随指动
    Eclipse Android 手机开发作业---空中的气球
    python OpenCV 实现图片的医学处理
    python OpenCV 宽度测量
  • 原文地址:https://www.cnblogs.com/zhengyeye/p/6019360.html
Copyright © 2011-2022 走看看