CMS3.0——初次邂逅express

前言:     

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

项目目录:

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

                                                                                                     

 

/bin: 用于应用启动

 

/public: 静态资源目录

 

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

 

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

 

app.js 程序main文件

 

2.在文件夹bin下面找www,右键单击Run 'bin\www',即可看到控制台输出“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 \5FAE\8F6F\96C5\9ED1,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:\5FAE\8F6F\96C5\9ED1;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时,才可以跳转到

 

                                                                    如左图的页面,否则就是

 

 

提示的错误信息~

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
标签:M7LRVCMS3.0 发布于2016年4月22日 关于3.0(包括其他的扫描器速度慢,耗内存)说明 1:我们举个实际点的例子,假设现在有1000个网站,需要扫描的指纹是500个,线程数量是30,假设都要扫描完毕那么一共需要访问网页多少次?如果扫描更多的网站自己计算一下数量 答:50万次(就好比你的电脑在一秒内一口气访问30个网页,并且保持不变),那么请问你的内存不消耗吗?cpu不高?所有的扫描器大概都是这么个原理,要么吃内存,要么吃cpu。 2:关于皮肤加载卡 答:我的程序的皮肤和所谓的传统“皮肤”不是一回事,所有的效果全部是代码画出来的,只不过画的人不是我而已,懂代码的人就知道这是代码画出来的,我只是继承这个皮肤提供的窗体,不是说想加载就加载不想加载就不加载(至少我现在还没找到解决问题) 发布于2016年4月5日 M7lrv CMS 3.0 Beta(测试版) M7lrv CMS 3.0 Beta(测试版) 公开两个群: M7lrvTools交流群 542959428 这个群是一个开发者的群,预计是开放给一些程序开发者的,如果你不懂代码最好不要申请加入(群里主要讲解你在使用我开发的工具类的问题) M7lrvCms程序交流群 478722798 这是一个公开群,对任何人开放,说白了水军群O(∩_∩)O 去年就开始等了,原本说了发布,让你们失望了两次,在这里说句“实在不好意思”! 今天,在这里发布一个测试版(这个版本只为赞助过我小伙伴使用),这里预计测试时间为1个礼拜,然后发布大众版本,所以其他的小伙伴需要在等待一下,实在不好意思,比较别人赞助了 总不可能啥都没有特殊的东西吧?O(∩_∩)O,这里算是赞助过我的小伙伴的一个福利吧,也作为补偿。(没有赞助过我的小伙伴不要来骗我哦,我的qq里面有备注滴,呵呵) 下载地址还是在百度网盘里面,防止下载不了 3.0使用权限说明: http://m7lrv.com/api/m7lrvcms/checkCmsVersion/m7lrvcms3.0_question.txt 3.0exp详细列表: http://m7lrv.com/api/m7lrvcms/checkCmsVersion/CmsExpList.txt 稍微说一下更新说明: 1:exp更新到145个CMS系统(具体太多了没法一一举例,特别说明:免费版去除了getshell功能!!!不要问我为什么,这种简单的问题想想也知道!!) 2:集成了半自动sql注入功能(能够自动爬行网站采集url检查注入漏洞,包括GET注入和POST注入,注入检测功能代码有sqlmap提供,准确率你们说呢?目前测试GET类型的还是很不错的,应该有人看过我的截图的哈哈,POST注入还在测试中有bug的,另外sql注入暂时不提供,蜘蛛功能我打算用py语言编写—我的一个小伙伴帮我开发的,所以这个功能还需要时间,反正我觉得不会比网上那些什么挖掘机啊差!!!) 3:修改cms识别功能的一个bug(这个bug出现很久了但是一直没发现)修改不支持https扫描指纹功能!!(以前代码没有处理https的功能) 4:修改搜索引擎模式,新增到8个搜索引擎,优化百度引擎不能采集详细url的问题,引擎模式大部分采用了配置文件配置(方便维护和更新) 5:集成shell管理功能(已放弃),因为有大神做的比我好我自己就放弃了这个功能,有兴趣这个技术的朋友,如果多的话我可以考虑录制视频讲解一下原理技术 6:优化M7lrvTools工具类(强大到不会写代码都能简单些出expO(∩_∩)O哈哈~),这个工具类我是打算开放给开发者使用的,可以这样说,整个cms识别系统2/3的代码都是由这个dll提供的。 7:优化和集成新的网站接口到M7lrvWeb_Interface文件,这个dll主要提供一些网络上的接口,例如:搜索引擎采集,权重查询,md5解密…等等 7:新增M7lrvSkin皮肤dll文件(暂时不提供使用还在开发中,控件不多,如果有兴趣想要使用的可以联系我索要) 9:优化了M7lrvMessageBox文件的代码自己封装的一个消息提示框的插件(bug还是有不少的,但是勉强能用) 10:优化了exp dll文件代码,提供了三个接口,用户可以根据这三个接口开发自己的exp文件(代码我提供了用户只需要提供exp地址和逻辑判断即可),优化了ini文件的exp配置问题(exp的ini文件配置已经可以使用了) 11:个别功能采用了缓存技术(哈哈说白了就是把东西临时保存一下,用完了就删除) 12:3.0以后采用登录系统,程序需要登录使用(方便用户做了密码记录功能,自动登录功能)
是一款具有强大的功能的基于ASP语言的开源内容管理软件,有UTF-8和GB2132两个编码版本,支持ACCESS和MSSQL两种数据库。是一款完全开源的程序,都毫无保留的完全开放源代码,用户不需额外安装其他DLL组件,其最大的特点是易用. 系统自带三大模型,系统模型,注册模型.表单模型.让你无顾虑制作属于自己的特色网站 一、系统特色: 独特模型管理。通过模型管理,您可以基于文章系统克隆出不同的模型,使用标签+模板可扩展图片、新闻、文章、下载、Flash...等多个频道。每个模型可以自定义显示添加选项,更为强大的是,您还可以自定义字段管理,可以随时根据需要自己自定义添加、设立、调整需要添加的选项,这些选项可以是文本框、下拉框等,也可以是图片、文件、随机数等。每个模型都具有易用的信息添加系统,简短和完整标题设置、分页设置、TOP设置、热点设置、是否允许评论、关键字、导读、阅读权限等等……不需要您再去二次开发插件。 字段随心所欲控制 数据校验规则 作为搜索条件 数据唯一功能更为强大 强大标签管理。系统拥有强大的标签自动生成系统,任何您想要实现的功能,例如输出格式(table和div可选)、排序方法、文章属性、文章行距、文章数量、标题字数、日期格式、分隔图片、标题样式等等只需要在后台进行相关设置即可;任何网站所有的输出功能,如栏目文章、图片文章、幻灯片、循环栏目、分页文章、相关文章、网站导航、友情链接等,也只需要在后台进行相关设置即可。同时可以通过自定义标签的使用,创立自己独特标签,来让整个网站更为完善。 新增代码模式,制作网站更方面.更简单 3、可选生成格式。整个网站可以快速地、全部生成静态页面,支持动态、纯静态、伪静态等多种格式发布,易于搜索引擎的快速收录,有效提升网站搜索提名,充分满足您的多样化需要,让您的网站立于不败之地。发布静态站点时可以选择不同的后缀生成名,可分别生成各频道、栏目、网站首页的静态文件,也可以自主设置添加文章时是否同时生成内容页、栏目页和首页。 4、特色会员系统。会员注册采用模型管理方式,您可以根据情况自定义添加不同的注册模型,如普通用户、企业用户等等,每个模型还可以自定义添加不同字段,如籍贯、头像、选项等。各个添加的用户组可以配置不同的权限和计费方式,如扣点数、有效期、无限期等。后台还配有充值卡添加管理功能和用户短信管理功能等。在会员操作前台,会员可以进行续费、交友、投稿等操作。会员管理系统还与流行论坛高度整合,让整个网站与网站论坛完美融合,让您的网站更具竞争力。 5、齐全文章管理。在信息添加管理系统那里,具备齐全的文章管理功能。文章管理、审核、评论管理、tags管理、回收站、栏目添加管理、生成操作等功能一应俱全。集成系统内置了世界著名的开源编辑器FckEditor的HTML在线编辑系统,可在后台选择默认、简洁、超简洁等模式,使编辑文章能所见所得,添加新闻时还可根据分页标签自动分页。 二、其他功能 1、在线系统设置。在系统设置里面可以方便设置站点基本信息、进行管理员管理、日志管理、插件管理、维护数据库等。 2、无限级栏目分类。系统支持无限级分类,添加、修改、删除,操作十分简单方便。 3、多样化的模板管理。页面模板可以在线预览、添加、修改、删除,每个模型、栏目可以绑定不同的模板,让您的网站不再陷入单一化的页面状态,只要您愿意,您的站点绝不可能和其他人的站点有雷同。 4、友情链接系统。可以新增友情链接类别,审核申请的链接,在后台可以统计链接点击次数等。 5、留言系统。对留言进行回复、删除管理。 6、管理员权限分配。管理员分栏目管理员、模型管理员、超级管理员三级,可以给予某个管理员某个栏目的管理、增加、修改、删除、审核中的任一或多个操作权限,将责任细化到每个管理员,再也不用为管理责任不清而烦劳。 7、强大的图片新闻幻灯显示系统,采用FLASH或者纯图片方式,将您的图片文章以融合、百叶窗等多种交替方面幻灯显示,让您的网站与大网站相媲美 8、强大的文章显示功能,文章除了分页、页数统计这些,还拥有上一篇、下一篇提示、点击数、评论留言、查看权限(收费文章)、投稿系统等强大的功能 9、独创的Tags标签,该功能随着系统使用时间的增加,一个真正属于您自己的词库也在慢慢建立。可根据您的需要调用热门Tags,同论坛精华贴一样,让用户快速找到最有用的信息 10、配套采集功能。系统与ET采集系统无缝整合,提供接口。 11、超小的程序,仅有1M多点。虽然ACTCMS拥有这么多的强大的功能,可是它的体积很小,这显然十分有益于大幅度提高网站的访问速度,非常适宜新站长和空间较小的站长使用,更多功能还有待您去挖掘.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值