登录功能
来源:互联网 发布:小米云服务软件 编辑:程序博客网 时间: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>
阅读全文
0 0
- 登录功能
- 登录功能
- 登录功能
- 限制登录功能,让人爱让人恨
- 实现登录过滤器功能
- ajax 用户 登录 功能
- session实现登录功能
- EJB实现登录功能
- 退出登录功能
- Qt 实现登录功能
- 登录功能小实验
- strut2登录过滤功能
- phonegap登录功能
- SpringMVC自动登录功能
- cookie登录功能实现
- SSH 单用户登录功能
- android登录功能
- jsoup实现登录功能
- 走进SharedPreferences
- SQL Server2005管道的另一端上无任何进程——解决方案
- 无法在JDK源码中设置断点---- unable to install breakpoint in ....due to missing line number attributes
- foreach和&共用出现的问题
- HeidiSQL中文乱码解决
- 登录功能
- 直接拿来用!十大Material Design开源项目
- 16位汇编指令
- 层次遍历构建二叉树
- 修复mac文件已损坏
- case when语句用法
- 量化进阶——教你做一个成功的交易者!
- python读取并写入mat文件
- 设计模式——装饰模式