nodejs个人博客开发第七步 后台登陆


Posted in NodeJs onApril 12, 2017

本文为大家分享了nodejs个人博客开发的后台登陆,具体内容如下

定义后台路径

访问这个路径进入后台页面 http://localhost:8888/admin/login

在后台路由控制器里面(/admin/index.js)调用登陆控制器(/admin/login.js)

//调用router对象的use方法,使用路由中间件
router.use("/login",require("./login"));

登陆控制器里面,定义登陆界面的路由,定义登陆提交验证的路由,这里需要获取到form表单post提交的数据,需要使用一个中间件叫body-parser

/**
* 后台登陆控制器
*/
var router=express.Router();
//引用中间件
var bodyParser = require('body-parser');
//使用以下这个中间件的方法
router.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
/*界面*/ 
router.get('/',function(req,res,next){
  res.render("admin/login");
});
/*验证*/
 router.post('/',function(req,res,next){
    //对口令进行最简单的写死的验证
  if(req.body.password=='taoshihan'){
            //记录一下session
      req.session.adminId=1;
      res.redirect("/admin");
  }else{
    res.send("口令错误!");
  }
});
module.exports=router;

后台主页判断是否有权限

后台对session里面的值进行判断,如果没有就是没登陆,跳到登陆页,不让进入。这里需要两个中间件express-session和cookie-parser

var session=require("express-session");
var cookieParser = require('cookie-parser');
var router=express.Router();
//使用以下session和cookie
router.use(cookieParser());
router.use(session({
  secret: '12345',
  name: 'nodejs-blog',  //这里的name值得是cookie的name,默认cookie的name是:connect.sid
  cookie: {maxAge: 8000000 }, //设置maxAge是80000ms,即80s后session和相应的cookie失效过期
  resave: false,
  saveUninitialized: true,
}));

验证权限有个公用的验证控制器/admin/auth.js

/**
* 验证控制器
*/
var auth=function(router){
  /*验证权限*/ 
  router.use(function(req,res,next){
    if(!req.session.adminId){
      res.redirect("/admin/login");
    }
    next();
  });  
}

module.exports=auth;

在需要验证的地方,调用这个路由中间件

/*验证权限*/ 
require("./auth")(router);

nodejs个人博客开发第七步 后台登陆

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
nodejs入门详解(多篇文章结合)
Mar 07 NodeJs
提高NodeJS中SSL服务的性能
Jul 15 NodeJs
Nodejs实现的一个静态服务器实例
Dec 06 NodeJs
NodeJS中Buffer模块详解
Jan 07 NodeJs
Nodejs为什么选择javascript为载体语言
Jan 13 NodeJs
nodeJs内存泄漏问题详解
Sep 05 NodeJs
nodejs简单实现操作arduino
Sep 25 NodeJs
NodeJS整合银联网关支付(DEMO)
Nov 09 NodeJs
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
Jan 05 NodeJs
使用npm安装最新版本nodejs
Jan 18 NodeJs
详解nodejs通过响应回写的方式渲染页面资源
Apr 07 NodeJs
NodeJs项目中关闭ESLint的方法
Aug 09 NodeJs
nodejs个人博客开发第六步 数据分页
Apr 12 #NodeJs
nodejs个人博客开发第五步 分配数据
Apr 12 #NodeJs
nodejs个人博客开发第四步 数据模型
Apr 12 #NodeJs
nodejs个人博客开发第三步 载入页面
Apr 12 #NodeJs
nodejs个人博客开发第二步 入口文件
Apr 12 #NodeJs
nodejs个人博客开发第一步 准备工作
Apr 12 #NodeJs
nodejs获取微信小程序带参数二维码实现代码
Apr 12 #NodeJs
You might like
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
深入理解PHP之源码目录结构与功能说明
2016/06/01 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
PHP如何防止用户重复提交表单
2020/12/09 PHP
自己编写的类似JS的trim方法
2013/10/09 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
Node.js+Express配置入门教程详解
2016/05/19 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
老生常谈javascript的类型转换
2016/10/12 Javascript
JS取模、取商及取整运算方法示例
2016/10/13 Javascript
nodejs async异步常用函数总结(推荐)
2017/11/17 NodeJs
Angular2开发环境搭建教程之VS Code
2017/12/15 Javascript
JS实现关键词高亮显示正则匹配
2018/06/22 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
2019/07/12 Javascript
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
React生命周期原理与用法踩坑笔记
2020/04/28 Javascript
[01:00:14]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第二场 2月28日
2021/03/11 DOTA
Python入门篇之字符串
2014/10/17 Python
python将字符串转换成数组的方法
2015/04/29 Python
python通过定义一个类实例作为ftp回调方法
2015/05/04 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
树莓派使用USB摄像头和motion实现监控
2019/06/22 Python
Python的垃圾回收机制详解
2019/08/28 Python
python-xpath获取html文档的部分内容
2020/03/06 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
《美丽的田园》教学反思
2014/03/01 职场文书
应聘英语教师求职信
2014/04/24 职场文书
部队反四风对照检查材料
2014/09/26 职场文书
党员群众路线整改措施及今后努力方向
2014/10/28 职场文书
放假通知格式
2015/04/14 职场文书
员工加薪申请报告
2015/05/15 职场文书
大学副班长竞选稿
2015/11/21 职场文书
美德少年事迹材料(2016推荐版)
2016/02/25 职场文书
pandas求平均数和中位数的方法实例
2021/08/04 Python
Nginx 反向代理解决跨域问题多种情况分析
2022/01/18 Servers
win sever 2022如何占用操作主机角色
2022/06/25 Servers