使用express+mongoDB搭建多人博客 学习(4)登录与登出

登录

修改index.ejs

<%- include header %>
    <% if(locals.error){ %>
        <span><%= locals.error %></span>
    <% } %>
    <form method="post">
        用户名:<input type="text" name="name"/><br/>
        密码:<input type="password" name="password"/><br/>
        <input type="submit" value="登录"/>
    </form>
<%- include footer %>

修改index.js

router.post(‘/login‘,function(req,res,next){
    var md5=crypto.createHash("md5");
    password=md5.update(req.body.password).digest(‘hex‘);
    console.log(req.body.name);
    User.get(req.body.name,function(err,user){
        if(!user){
            req.flash(‘error‘,"用户不存在");
            return res.redirect("/login");
        }
        console.log(user.password,password);
        if(user.password!==password){
            req.flash("error","密码错误");
            return res.redirect("/login");
        }
        req.session.user=user;
        req.flash(‘success‘,"登录成功");
        res.redirect("/");
    })
});

登出

index.js中新增:

router.get("/logout",function(req,res){
    req.session.user=null;
    req.flash("success","登出成功");
    res.redirect("/");
});

现在登录后浏览器中输入:localhost:3000/logout

修改模板

login.ejs index.ejs 和req.ejs中都有

<% if(locals.xxx){ %>
<span><%= locals.xxx %></span>
<% } %>

这类的代码,删掉它们。

修改header.ejs如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Blog</title>
    <link rel="stylesheet" href="/stylesheets/style.css">
</head>
<body>
    <header>
        <h1><%= title %></h1>
    </header>
    <nav>
        <span><a title="主页" href="/">home</a></span>
        <% if(locals.user){ %>
        <span><a title="发表" href="/post">post</a></span>
        <span><a title="登出" href="/logout">logout</a></span>
        <% }else{ %>
        <span><a title="登录" href="/login">login</a></span>
        <span><a title="注册" href="/reg">register</a></span>
        <% } %>
    </nav>
    <article>
        <% if(locals.error){ %>
            <span><%= locals.error %></span>
        <% } %>
        <% if(locals.success){ %>
            <span><%= locals.success %></span>
        <% } %>

修改index.js

router.post(‘/login‘,function(req,res,next){
    var md5=crypto.createHash("md5");
    password=md5.update(req.body.password).digest(‘hex‘);
    console.log(req.body.name);
    User.get(req.body.name,function(err,user){
        if(!user){
            req.flash(‘error‘,"用户不存在");
            return res.redirect("/login");
        }
        console.log(user.password,password);
        if(user.password!==password){
            req.flash("error","密码错误");
            return res.redirect("/login");
        }
        req.flash("user",req.session.user=user);
        req.flash(‘success‘,"登录成功");
        res.redirect("/");
    })
});

router.get("/logout",function(req,res){
    req.flash("user",req.session.user=null);
    req.flash("success","登出成功");
    res.redirect("/");
});

修改app.js

app.use(function(req, res, next) {
    res.locals.error = req.flash(‘error‘).toString();
    res.locals.success = req.flash(‘success‘).toString();
    res.locals.user=req.flash("user").toString();
    next();
});

时间: 2024-11-03 13:31:58

使用express+mongoDB搭建多人博客 学习(4)登录与登出的相关文章

使用express+mongoDB搭建多人博客 学习(5)权限控制

修改index.js如下: var express = require('express'); var router = express.Router(); var crypto=require('crypto'); var User=require("../models/user.js"); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: '主页'

使用express+mongoDB搭建多人博客 学习(2)路由与模板

修改index.js路由规则: var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: '主页' }); }); router.get('/reg',function(req,res,next){ res.render('reg', { t

2015年12月12 Node.js实战(一)使用Express+MongoDB搭建多人博客

序,Node是基于V8引擎的服务器端脚本语言. 基础准备 Node.js: Express:本文用的是3.21.2版本,目前最新版本为4.13.3,Express4和Express3还是有较大区别,可以去官网查看wiki:https://github.com/strongloop/express MongoDB: 一.使用Express搭建一个站点 1 快速开始安装Express Express是Node上最流行的Web开发框架,通过它可以快速开发一个Web应用.全局模式下输入命令: $ npm

Express MongoDB搭建多人博客--笔记

1. 全局  npm install -g express 2.安装 express 命令工具  express-generator: --> npm install -g express-generator 3.e:> express -e ejs blooog 4. blooog> npm install 5. 启动服务 blooog> npm start localhost:3000 可以访问网页.

设计node.js搭建多人博客的思路(不讲数据库)

1.1.4:搭建多人博客 1.功能分析 搭建一个简单的多人注册,登录,发表文章及登出功能的博客 2.设计目标 未登录:主页左侧导航显示home.login.register,右侧显示已发表文章,发表日期及作者 登陆后:主页左侧导航显示home.post.logout,右侧显示已发表文章,发表日期及作者 用户登录.注册.发表成功后 以及登出后都返回到主页 (1)未登录 主页 登录页 注册页 (2)登录后 主页 发表页 注意:没有登出页,点击logout后,退出登录并返回首页 3.路由规划 既然把设

MongoDB + express + node + bootstrap 搭建多人博客

这篇博客讲述如何搭建一个多人博客,需要一定的基础知识,用于思路整理和备忘. 第一步: 新建文件夹 blog ,结构如下: bin --- 可执行二进制文件,最终的启动接口. models --- 存储与数据.操作数据相关文件. public --- 存储静态文件. routes --- 存储路由文件. views --- 存储视图文件. app.js --- 程序主文件. package.json --- 程序相关信息. 第二步: 安装依赖模块 cnpm install express expr

【我的笔记BLOG4】搭建多人博客

功能分析 博客具有四个功能:注册  登录  登出  发表文章 界面设计 未登录: [主页  注册页  登录页] [主页] 主页 左侧 HOME                                这是主页 LOGIN REGISTER [注册页]  “/login” 注册 左侧HOME                       用户名:________ LOGIN                      密码:__________ REGISTER                确

使用node+mongodb搭建简单个人博客——第一章遇到的问题

问题一: express-session deprecated undefined resave option; provide resave option app.js:39:9express-session deprecated undefined saveUninitialized option; provide saveUninitialized option app.js:39:9

Vue.js实践:一个Node.js+mongoDB+Vue.js的博客内容管理系统

项目来源 以前曾用过WordPress搭建自己的博客网站,但感觉WordPress很是臃肿.所以一直想自己写一个博客内容管理器. 正好近日看完了Vue各个插件的文档,就用着Vue尝试写了这个简约的博客内容管理器(CMS). 嗯,我想完成的功能: 一个基本的博客内容管理器功能,如后台登陆,发布并管理文章等 支持markdown语法实时编辑 支持代码高亮 管理博客页面的链接 博客页面对移动端适配优化 账户管理(修改密码) Demo 登陆后台按钮在页面最下方"站长登陆",可以以游客身份登入后