users.js

// 创建用户集合
// 引入mongoose第三方模块
const mongoose = require('mongoose');
// 导入bcrypt
const bcrypt = require('bcrypt');
// 引入joi模块
const Joi = require('joi');
// 创建用户集合规则
const userSchema = new mongoose.Schema({username: {type: String,required: true,minlength: 2,maxlength: 20},email: {type: String,// 保证邮箱地址在插入数据库时不重复unique: true,required: true},password: {type: String,required: true},// admin 超级管理员// normal 普通用户role: {type: String,required: true},// 0 启用状态// 1 禁用状态state: {type: Number,default: 0}
});// 创建集合
const User = mongoose.model('User', userSchema);async function createUser () {const salt = await bcrypt.genSalt(10);const pass = await bcrypt.hash('123456', salt);const user = await User.create({username: 'iteheima',email: 'itheima@itcast.cn',password: pass,role: 'admin',state: 0});
}// createUser();// 验证用户信息
const validateUser = user => {// 定义对象的验证规则const schema = {username: Joi.string().min(2).max(12).required().error(new Error('用户名不符合验证规则')),email: Joi.string().email().required().error(new Error('邮箱格式不符合要求')),password: Joi.string().regex(/^[a-zA-Z0-9]{3,30}$/).required().error(new Error('密码格式不符合要求')),role: Joi.string().valid('normal', 'admin').required().error(new Error('角色值非法')),state: Joi.number().valid(0, 1).required().error(new Error('状态值非法'))};// 实施验证return Joi.validate(user, schema);
}// 将用户集合做为模块成员进行导出
module.exports = {User,validateUser
}

前端学习(1394):多人管理项目14多人加密使用相关推荐

  1. GitHub 上值得前端学习的数据结构与算法项目

    Hello,大家好,我是你们的 前端章鱼猫. 简介 前端章鱼猫从 2016 年加入 GitHub,到现在的 2020 年,快整整 5 个年头了. 相信很多人都没有逛 GitHub 的习惯,因此总会有开 ...

  2. 一张图搞定项目干系人管理,掌握干系人管理的模型和技能

    大家都知道项目管理确实非常不易,什么时间.成本.质量.范围.资源.采购等等统统都要关注,万一忽略那一个方面都会造成问题,但是项目管理本质上是对人的管理,通过协调整合各个环节的人员来完成一个独立个体很难 ...

  3. 实名认证挂号订单就诊人管理管理员对就诊人管理

    上传文件 MultipartFile 流操作 flie.getInputStream() 按照阿里云oss的上传文件的模板,采取流上传的方式,先创建oosclient实例,然后flie.getInpu ...

  4. 前端学习(1393):多人管理项目13加密实现

    blog.js //管理页面 //展示页面 const express = require('express');const admin = express.Router();admin.get('/ ...

  5. 前端学习(1392):多人管理项目12加密

    blog.js //管理页面 //展示页面 const express = require('express');const admin = express.Router();admin.get('/ ...

  6. 前端学习(1391):多人管理项目11邮箱地址查询信息

    blog.js //管理页面 //展示页面 const express = require('express');const admin = express.Router();admin.get('/ ...

  7. 前端学习(1390):多人管理项目10服务器认证

    blog.js const express = require('express'); //创建网站服务器 const app = express(); //开放静态资源文件 const path = ...

  8. 前端学习(1389):多人管理项目9登录功能具体实现

    blog.js const express = require('express'); //创建网站服务器 const app = express(); //开放静态资源文件 const path = ...

  9. 前端学习(1388):多人管理项目8user登录

    blog.js const express = require('express'); //创建网站服务器 const app = express(); //开放静态资源文件 const path = ...

最新文章

  1. R语言points作图
  2. 五元一次方程组计算器_人教版初中数学七年级下册列一元一次不等式解实际问题公开课优质课课件教案视频...
  3. Spring Boot中自带的这些工具类,你用过几个?
  4. windows mysql.tar安装_MySQL的安装
  5. linux 之 getopt_long()
  6. 浙江财经大学是一所怎样的学校?
  7. docker下安装mysql数据库
  8. mysql 不执行索引_mysql使用不上索引的几种情况
  9. 第二阶段冲刺报告(三)
  10. mysql ssh 导入时注意问题
  11. 用 VC++ 调用最小的浏览器内核创建一个简易的浏览器
  12. XMind的安装及导出为pdf
  13. 局域网内连接其他计算机共享的打印机
  14. li指令 汇编_汇编语言和汇编软件
  15. 用asp获取服务器IP和客户端IP
  16. 《操作系统真象还原》第三章 ---- 完善MBR 尝汇编先苦涩后甘甜而再战MBR!(内有闲聊)
  17. Python 类的知识点
  18. Linux-看门狗应用程序watchdog
  19. 【软考必读】软考高级证书对工作的6大帮助
  20. LabWindows中Table控件的下拉列的设置

热门文章

  1. redis学习(九)——数据持久化
  2. python3.4学习笔记(九) Python GUI桌面应用开发工具选择
  3. [libGDX游戏开发教程]使用libGDX进行游戏开发(12)-Action动画
  4. android模拟器插件,Android模拟器插件找不到android SDK
  5. 用FFmpeg从视频截取任意一帧图片的解决办法~
  6. CString转char的方法总结
  7. AS3读取XML文档
  8. Java 结构体之 JavaStruct 使用教程二 JavaStruct 用例分析
  9. 2016matlab安装
  10. 前端学习(3324):你不知道javascript说闭包