mysql 常用语法 cookie session token redis 用法


SHOW TABLES;
USE blog;
-- ctrl+shift+r 删除注释
-- ctrl+shift+c 注释
-- 添加 内容 insert into 表()values()
-- insert into users(us,ps,realname)values('lisi','123456','lisi')
-- 查询 select * from-- select * from users;-- 
-- select*from users where us="lisi" and ps="223"
-- like 查询包含
-- select*from users where ps like '%2%' 

-- 排序  ORDER BY id  默认正序  ORDER BY id desc; 倒叙
-- select*from users where ps like '%2%' order by id;
-- SELECT*FROM users WHERE ps LIKE '%2%' ORDER BY id desc;

-- 更新
-- update users set realname='lisi2' where us='lisi'

-- 删除
-- delete from users where us='lisi'

-- state 1 存在  state=0 则为删除



-- update users set state='0' where us='lisi' ; -- 软删除
-- 查询<> '0' 不等于0

SELECT * FROM users WHERE state <>'0'

Sqylog 中使用

cookie

  • 存储在浏览器的一段字符串(最大5kb)
  • 跨越不共享
  • 格式 k1=v1;k2=v2;k3=v3;因此可以存储结构化数据;
  • 每次发送http请求,会讲请求域的cookie一起发送给server
  • server可以修改cookie并返回给浏览器
  • 浏览器中也可以通过JS修改cookie(有限制)

 server端nodejs操作cookie

  • 查看cookie
  • 修改cookie
  • 实现登录验证

解析cookie

  //解析cookie
  req.cookie = {};
  const cookieStr = req.headers.cookie || ""; //k1=v1;k2=v2
    cookieStr.split(";").forEach((item) => {
      if(!item){
        return
      }
      var arr = item.split("=");
      var key = arr[0];
      var val = arr[1];
      req.cookie[key] = val;
    });
    console.log('cookie',req.cookie)

修改cookie

    //操作cookie  path 路径设置为根路径 所有的网站都会生效  httpOnly 前端不可以修改
        res.setHeader(
          "Set-Cookie",
          `username=${data.us};path='/';httpOnly;expires=${getCookieExpires()}`
        );
//封装cookie过期时间
const getCookieExpires = () => {
  const time = new Date().getTime() + 24 * 60 * 60 * 1000;
  console.log("time", time);
  return time;
};

cookie 的问题  会暴露信息

session  解决  cookie中存储userid session中存储username;

    //存储Session
  let SESSION_DATA={};
    
  //解析Session
  let needSetCookie = false;
  let userId = req.cookie.userid;
  if (userId) {
    if (!SESSION_DATA[userId]) {
          SESSION_DATA[userId];
    }
  } else {
    needSetCookie = true;
    userId = `${new Date()}_${Math.random()}`;
    SESSION_DATA[userId] = {};
  }

     操作session

    req.session.us=data.us;
     req.session.realname=data.realname;

    使用session
    if (req.session.us) {
      return Promise.resolve(
        new SuccessModule({
          session: req.session.us,
        })
      );
    }