Express Mongodb Mongoose 加密 模板引擎
Express
-
route 路由(路由)
-
第三方中间件
-
body-parser 解析http请求参数、较新版本有内置的中间件可替代
-
express-static 托管静态资源
-
supervisor 热部署
-
cors 跨域
-
multer 文件上传 、注意版本使用区别
-
-
npx express-generrator 生成整个框架结构 应用程序生成器 【一行命令结构全搞定】
mongodb
-
非关系型数据库、非sql数据库
-
常用命令
-
mongo 数据库连接
-
show dbs 查看数据库 ->show databases
-
use db 切换数据库、若数据库不存在则创建
-
show collections 查看表
-
crud
-
db.createCollection('集合名')
- 插入数据时创建集合 db.集合名.insert(doc)
-
db.集合名.find()
- findOne()
-
db.集合名.update()/save()
-
db.集合名.drop()
- db.集合名.remove({})
-
-
删除数据库
- db.当前所在数据库名称()
-
mongoose
-
两个核心点
- schema ->表结构
- model ->实例代表可以从数据库保存和读取docoments文档的数据
-
使用步骤
- let m = db.model('user',schema,'user'[第三个参数可不写、默认表示第一个参数的复数、表示对应数据表])
- 使用UserModel 对数据库进行增删改查
加密技术
-
对称加密 (加解密都用相同秘钥)
-
DES、3DES、IDEA
-
优点
- 算法公开、计算量小、加密速度快、效率高
-
缺点
- 没有非对称加密安全
-
用途
- 一般用于保存用户手机号、身份证等敏感但能解密的信息
-
示例
- cryto.js库
-
-
非对称加密(公钥加私钥解 / 私钥加公钥解[推荐])
-
RSA、DSA、RS256
-
优点
- 对比对称加密安全性更高
-
缺点
- 加解密时间长速度慢,只适合对少了数据加解密
-
用途
- 一般用于签名和认证,私钥服务器保存用于加密,公钥给客户用于解密或校验
-
示例
-
RSA加密
-
jsencrypt
-
RSA在线生成:tools.jb51.net/password/rs…
-
引入
<script src="../lib/js/JSEncrypt.js"></script>
-
-
-
-
不可逆加密
-
MD5、SHA、HMAC
-
示例SHA
-
安全散列算法 hash 一种单向算法
-
js-sha256.js
-
-
base64是一种编码、不是加密手段
-
实现
- npm i js-base64
- let bs64 = require('js-base64').Base64
- let pw = bs64.encode(password)
-
-
token认证
-
流程
- 前端用户登录 -->后端判断是否登录成功(成功则生成token令牌并和用户信息[头像]一起返回给前端) ->前端收到token保存的本地 ->前端发送任意请求都将携带该token以便于后端验证token存在、为真与否-> token验证成功则去数据库查询数据并返回给前端
-
JWT
-
json web token
-
原理 服务器认证后,生成一个JSON对象返回给用户
-
实现
-
npm i jsonwebtoken
-
封装和认证token的代码 [后端]
- 拦截所有请求并认证token[后端 ]
前端设置请求头部、让所有请求都携带token(若有)简单封装axios 与 拦截器request.js 1. 创建axios实例1. 封装请求拦截器 配置所有的前端请求头都带上token令牌
-
-
RESTful
-
轻量级web服务架构风格方式 -> 本质是使用URL来访问资源的一种方式
-
URL 请求方式
- 以前: POST GET
- restful: GET(查) POST(增) PUT(改) DELETE(删) HEAD OPTIONS
- 虽然 REST 看起来还是很简单的,实际上我们往往需要提供一个 REST 框架,让其实现前后端分离架构,让开发人员将精力集中在业务上,而并非那些具体的技术细节。
模板引擎
-
模板字符串
-
模板引擎
- 常用Art-template 、 ejs