登录功能

来源:互联网 发布:小米云服务软件 编辑:程序博客网 时间:2024/05/16 17:06

访问/reg,退出登陆

index.js

const express = require('express'),    router = express.Router(),    sql = require("../module/mysql");// sql('INSERT INTO `phone` (`id`,`number`, `name`, `phone`) VALUES (0,?,?,?)')router.get('/',(req,res)=>{    sql('SELECT * FROM phone',(err,data)=>{        res.render('index.ejs',{ data : data });    })});// 注册交给login.jsrouter.use('/login',require('./login'));// 登陆router.use('/reg',require('./reg'));// 退出router.use('/logout',(req,res)=>{    // 清除cookie    res.clearCookie('login');    // 跳转到首页 redirect网址重定向    res.redirect('/');})module.exports = router;

引用cookie模块,在其他页面保持保持登陆状态(访问每个页面都执行)

,package.json

 {    "name":"node02",    "version":"0.0.1",    "dependencies":{        "express":"latest",        "ejs":"latest",        "mysql":"latest",        "body-parser":"latest",        "cookie-parser":"latest"    }  }

app.js

const http = require('http'),    express = require('express'),    app = express(),    bodyParser = require('body-parser'),    cookieParser = require('cookie-parser');// 模板引擎app.set('views',__dirname+'/views');app.set('view engine','ejs');// 公共目录app.use(express.static(__dirname+'/public'));// post接收app.use(bodyParser.json());app.use( bodyParser.urlencoded({ extended:true }) );// cookieapp.use(cookieParser('1345679')) //密钥.// 不同页面保持登陆状态.  use()路径不写.==>全部页面执行.app.use(function(req,res,next){   //没有next页面会一直加载    if(req.cookies['login']){        res.locals.login = req.cookies.login.user;    };    // 继续往下执行    next();})app.use('/',require('./router/index'));http.createServer(app).listen(123);

这里写图片描述


<!-- //执行完相当return -->res.json({}) ,  res.send()<!-- // 保持登陆状态. node后端方法 设置cookie -->// 1.cookie名称.  2. 数据   3.过期时间maxAge  (毫秒)res.cookie({})<!-- require 模块cookie-parser --><!-- // cookie -->app.use(cookieParser('1345679')) //密钥.// 不同页面保持登陆状态.  use()路径不写.==>全部页面执行.app.use(function(req,res,next){   //没有next页面会一直加载    if(req.cookies['login']){        res.locals.login = req.cookies.login.user;    };    next();})// 退出router.use('/logout',(req,res)=>{    // 清除cookie    res.clearCookie('login');    // 跳转到首页 redirect网址重定向    res.redirect('/');})

登陆检测 ,保存登陆状态(设置cookie)

reg.js

const express = require('express'),    router = express.Router(),    sql = require('../module/mysql.js');router.get('/', (req,res)=>{    // 进入判断浏览器的cookies ,在这判断的话只能一个页面保持登陆状态    console.log(req.cookies);    res.render('reg');})router.post('/', (req,res)=>{    const name = req.body.name,        pass = req.body.pass;    sql('SELECT * FROM user WHERE name = ?',[name],(err,data)=>{        console.log(data);        //先判断用户存不存在        if(data.length === 0) {            res.send("用户不存在");            return;        };        if(data[0]['pass'] == pass){//密码正确            // 保持登陆状态. node后端方法 设置cookie            // 1.cookie名称.  2. 数据{}   3.过期时间maxAge  (毫秒)            res.cookie('login',{user:name},{maxAge: 1000*60*60*24});            res.json({                result:"登陆成功"            });        }else{            res.send('密码错误');        }    })})module.exports = router;

使用ajax,服务器返回:res.json({})

reg.ejs

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title></head><body>    <h1>登陆</h1>    <% if( locals.login ) {%>        <h1><%= locals.login %>已经登陆 <a href="/logout"> 退出 </a></h1>    <% }else{ %>    <input class="name" type="text" name="name">    <input class="pass" type="text" name="pass">    <input type="button" class="submit">    <% } %>    <script src="/js/jquery.js"></script>    <script>        $(".submit").click(function(){            $.ajax({                url:'/reg',                type:'post',                data: {                    name:$('.name').val(),                    pass:$('.pass').val()                },                dataType:'json',                success:function(data){                    console.log(data);                    // 刷新页面                    window.location.reload();                },                error:function(data){ //dataType不是json 走这                    // data  => {..responseText:data...}                    console.log(data);                }            })        })        // var allcookies = document.cookie;        // allcookies&&console.log(allcookies);    </script></body></html>