Express Mongodb Mongoose 加密 模板引擎

216 阅读3分钟

Express Mongodb Mongoose 加密 模板引擎

Express

  • route 路由(路由)

    app.jpg

  • 第三方中间件

    • body-parser 解析http请求参数、较新版本有内置的中间件可替代

      body-parse.jpg

    • express-static 托管静态资源

      express-static.jpg

    • supervisor 热部署

    • cors 跨域

      cors .jpg

    • multer 文件上传 、注意版本使用区别

      multer 文件上传 .jpg

      multer 文件上传 2.jpg

  • npx express-generrator 生成整个框架结构 应用程序生成器 【一行命令结构全搞定】

    express-genretor.jpg

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文档的数据
  • 使用步骤

    mongoose1.jpg

    mongoose2.jpg

    • let m = db.model('user',schema,'user'[第三个参数可不写、默认表示第一个参数的复数、表示对应数据表])

    mongoose3.jpg

    • 使用UserModel 对数据库进行增删改查

    mongoose4.jpg

加密技术

  1. 对称加密 (加解密都用相同秘钥)

    1. DES、3DES、IDEA

    2. 优点

      1. 算法公开、计算量小、加密速度快、效率高
    3. 缺点

      1. 没有非对称加密安全
    4. 用途

      1. 一般用于保存用户手机号、身份证等敏感但能解密的信息
    5. 示例

      1. cryto.js库

      对称加密.png

  2. 非对称加密(公钥加私钥解 / 私钥加公钥解[推荐])

    1. RSA、DSA、RS256

    2. 优点

      1. 对比对称加密安全性更高
    3. 缺点

      1. 加解密时间长速度慢,只适合对少了数据加解密
    4. 用途

      1. 一般用于签名和认证,私钥服务器保存用于加密,公钥给客户用于解密或校验
    5. 示例

      1. RSA加密

        1. jsencrypt

        2. RSA在线生成:tools.jb51.net/password/rs…

        3. 引入 <script src="../lib/js/JSEncrypt.js"></script>

        非对称加密1.png

        非对称加密2.png

  3. 不可逆加密

    1. MD5、SHA、HMAC

    2. 示例SHA

      1. 安全散列算法 hash 一种单向算法

      2. js-sha256.js

        不可逆加密.png

    3. base64是一种编码、不是加密手段

      1. 实现

        1. npm i js-base64
        2. let bs64 = require('js-base64').Base64
        3. let pw = bs64.encode(password)

token认证

  1. 流程

    1. 前端用户登录 -->后端判断是否登录成功(成功则生成token令牌并和用户信息[头像]一起返回给前端) ->前端收到token保存的本地 ->前端发送任意请求都将携带该token以便于后端验证token存在、为真与否-> token验证成功则去数据库查询数据并返回给前端
  2. JWT

    1. json web token

    2. 原理 服务器认证后,生成一个JSON对象返回给用户

    3. 实现

      • npm i jsonwebtoken

      • 封装和认证token的代码 [后端]

      JWT1.png

      • 拦截所有请求并认证token[后端 ]

      JWT2.png

      前端设置请求头部、让所有请求都携带token(若有)
      
      

      JWT3.png

      简单封装axios 与 拦截器request.js
      
      1.  创建axios实例
          
      

      创建axios实例.png 1. 封装请求拦截器 配置所有的前端请求头都带上token令牌

      封装请求拦截器.png

RESTful

  1. 轻量级web服务架构风格方式 -> 本质是使用URL来访问资源的一种方式

  2. URL 请求方式

    1. 以前: POST GET
    2. restful: GET(查) POST(增) PUT(改) DELETE(删) HEAD OPTIONS
    3. 虽然 REST 看起来还是很简单的,实际上我们往往需要提供一个 REST 框架,让其实现前后端分离架构,让开发人员将精力集中在业务上,而并非那些具体的技术细节。

模板引擎

  • 模板字符串

  • 模板引擎

    • 常用Art-template 、 ejs

Vue 基础