Token 思想
在服务端不需要存储用户的登陆记录 全部发给客户端由客户端自己存 (cookie localstorage)
1、客户端使用用户名跟密码请求登录
2、服务端收到请求,去验证用户名与密码
3、验证成功后,服务端会签发一个Token (加了密的字符串),再把这个Token发送给客户端
4、客户端收到Token以后可以把它存储起来,比如放在Cookie里或者Local Storage里
5、客户端每次向服务端请求资源的时候需要带着服务端签发的Token
6、服务端收到请求,然后去验证客户端请求里面带着的Token,如果验证成功,就向客户端返回请求的数据
用Token 需要安装一个模块
生成 token
效验 token
Session 和Token 的区别
服务端报错用户信息 session 存 token不存
避免SCRF攻击 session 不可以 token 可以
安全性 session 一般 token 高
多服务器粘性问题 session 存在 token 不存在
Node中的非模块成员
在每个模块中 除了 require exports 等模块外
还有两个特殊成员 (都是动态获取)
__dirname
获取当前文件模块所属目录的绝对路径
__filename
获取当前文件的绝对路径
Node 文件操作路径中 相对路径是根据执行node命令所处的路径
解决方法 用绝对路径
path.join( __dirname 来拼接路径 )
Path 模块
path 模块 (内置模块) 操作系统的磁盘路径
path.join( 路径1 ,路径2, …)
把多个路径组成到一起 并返回
path.parse(路径字符串)
能把路径字符串转成对象并返回
ext 是文件后缀名
name 文件 不含后缀名
path.basename( 路径 , 选填 )
第二个参数选填 如果传个 .js 就 可以省略 .js 后缀名
能获取到 第一个参数的 文件名部分 忽略 路径
path.dirname( 路径)
获取一个路径中的目录部分
path.extname ( 路径 )
获取一个路径中的 后缀名部分
path.isAbsolute( 路径)
判断这个路径是不是绝对路径
path.resolve()
路径片段合并 和join 差不对
如果没有盘符 会自动找盘符
会从右向左 寻找盘符 如果找到盘符 那么前面的路径片段会忽略
文件上传 (multer 中间件)
multer 接受 form-data 编码数据 所有要求前端携带时注意一下 如:
安装
使用和配置
Jade 模板
原理
fs抓取前端静态页面+ jade +数据-> 返回send(data) >浏览器
特点
特点:侵入式,强依赖
安装
npm install jade
配置和使用