码迷,mamicode.com
首页 > 其他好文 > 详细

node中间件

时间:2020-07-23 23:04:49      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:用户注册   log   exports   pre   none   ret   null   不为   数据   

npm i body-parser

post 请求主题中间件

const bodyParser = require(‘body-parser‘)

 
const bodyParser = require(‘body-parser‘)

// 创建 application/json 解析
 const jsonParser = bodyParser.json()
 app.use(jsonParser)

 

express-validator 表单校验中间件

技术图片
const { body } = require(‘express-validator‘);
const UserModel = require(‘../model/User‘)
const bcrypt = require(‘bcrypt‘)

/**
 * 用户注册数据校验
 * 
 */
exports.addUserValidate = [
  // name 不为空 string
  body(‘name‘).notEmpty().isString().withMessage(‘name字段不能为空且必须是string类型‘), //withMessage配置可有可无
  // password 不为空 string
  body(‘password‘).notEmpty().isString().withMessage(‘password字段不能为空格且必须是string类型‘),
  // 年龄数字 不为空 0<=age<=100
  body(‘age‘).notEmpty().isInt(), //isInt number类型验证失效 
  // userId字段数据数据库唯一 不为空 且为string 
  body(‘userId‘).notEmpty().isString().custom(value => {
    return UserModel.findOne({ userId: value }).then(user => {
      if (user) {
        return Promise.reject(‘userId 已存在‘);
      }
    });
  })

]

/**
 * 用户登录数据校验
 * 
 */
let currentUser = null //用于保存当前
exports.userLoginValidate = [

  body(‘userId‘).notEmpty().isString().custom(value => {
    return UserModel.findOne({ userId: value }).select(‘+password‘).then(user => {
      // 判断用户是否存在
      if (!user) {
        return Promise.reject(‘该用户id尚未注册‘);
      }
      currentUser = user


    });
  }),

  body(‘password‘).notEmpty().isString().custom(async value => {

    const match = await bcrypt.compare(value, currentUser.password); // 明文 ,加密密码
    if (!match) return Promise.reject(‘秘密输入有误,请再输入一次‘);

  }),


]
View Code

 

bcrypt密码加密解密中间件

body.password = await bcrypt.hash(body.password, 10) // 密码加密
const match = await bcrypt.compare(value, currentUser.password); // 明文 ,加密密码
 
 

node中间件

标签:用户注册   log   exports   pre   none   ret   null   不为   数据   

原文地址:https://www.cnblogs.com/xiaoliziaaa/p/13368761.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!