ejs
ejs没有什么用处,此处了解即可
- 可以在node中使用ejs(html)页面;可以直接通过node传递参数到ejs(html)
- ejs在使用前必须先安装对应的模块
- 下载:npm i ejs
- 给express定义ejs模板 app.set("view engine","ejs")
- 创建ejs文件夹(views)=》文件后缀名是ejs
- ejs使用与html一致
- <%= arr1 %>输出node传递的值 <% 书写js代码 %>
API
res.render(文件名称,{传递到ejs页面的数据})返回ejs页面
- 文件名称是需要views中的文件名称 => 输入文件名称之后,会自动到views中进行查找对应名称的ejs文件
cookie
cookie基础
1.cookie有数量大小限制 数量在50个左右 大小在4kb左右;
2.cookie的存储时间非常的灵活
3.cookie不仅可以在服务器设置(用set-cookie),也可以在客户端设置
4.存储在浏览器或客户端
cookie的属性
1.name cookie的名字
2.value cookie的值
3.domain 设置cookie在哪个域名下是有效的
4.path cookie的路径
5.expires cookie的过期时间
6.max-age cookie的有效时间
7.httpOnly 有这个标记的cookie,前端是无法通过在控制台输入document.cookie获取到cookie值的
8.Secure 设置cookie只能通过https协议传输
9.SameSite 设置cookie在跨域请求的时候不能被发送
前端书写cookie:document.cookie="属性名=属性值"
服务器书写cookie的流程
1.用户提交请求至后端,由服务器生产cookie,返回的cookie将封装在响应头中返回给前端。
2.客户端接收到这个响应之后,自动将cookie存储在本地中。
3.后续发送请求将携带cookie数据发送至后端。
express
设置cookie
res.cookie("summer","crush",{"httpOnly":false,maxAge:1000*60*60})
获取cookie
配置 const cookieParser=require("cookie-parser") app.use(cookieParser())
req.cookies 获取
session
session基础
1.数据存储在服务器中
2.会发送一个cookie表示给前端
3.服务器刷新,session会删除
session使用
1.安装
npm i express-session
2.配置session
secret:"keyboard", //标记,通过该标签生成对应的编码格式
resave:false, //是否强制保存
savaiUnnitialized:true, //初始化进行保存
cookie:{ //与cookie设置一致
secure:false,
maxAge:1000*60*60*24
}
session实现免登录流程
1.用户提交请求至后端,有服务器提供的账号信息生成session,响应头将对应的sessionID返回给浏览器进行存储。
2.后续发送的请求将携带的sessionID至服务器,获取对应的账号信息给前端。
session设置 获取 销毁
1.req.session.变量名=存储数据
2.req.session.变量
3.req.session.变量=""
案例:
提取码:0915http://xn--https-bl8js66z7n7i//pan.baidu.com/s/1n4XxO_5tlVUu8yPFspgrhw