// 引入用户集合的构造函数
const { User, validateUser } = require('../../model/user');
// 引入加密模块
const bcrypt = require('bcryptjs');module.exports = async(req, res, next) => {try {await validateUser(req.body)} catch (e) {// 验证没有通过// e.message// 重定向回用户添加页面// return res.redirect(`/admin/user-edit?message=${e.message}`);// JSON.stringify() 将对象数据类型转换为字符串数据类型return next(JSON.stringify({ path: '/admin/user-edit', message: e.message }))}// 根据邮箱地址查询用户是否存在let user = await User.findOne({ email: req.body.email });// 如果用户已经存在 邮箱地址已经被别人占用if (user) {// 重定向回用户添加页面// return res.redirect(`/admin/user-edit?message=邮箱地址已经被占用`);return next(JSON.stringify({ path: '/admin/user-edit', message: '邮箱地址已经被占用' }))}// 对密码进行加密处理// 生成随机字符串const salt = await bcrypt.genSalt(10);// 加密const password = await bcrypt.hash(req.body.password, salt);// 替换密码req.body.password = password;// 将用户信息添加到数据库中await User.create(req.body);// 将页面重定向到用户列表页面res.redirect('/admin/user');
}

用户验证规则

前端学习(1404):多人管理24joi验证相关推荐

  1. 前端学习(1402):多人管理22验证joi

    // 引入joi模块 const Joi = require('joi');// 定义对象的验证规则 const schema = {username: Joi.string().min(2).max ...

  2. 【转】一个40岁老程序员的前端学习之路|2021 年中总结

    40岁的老程序员感言 时光给我留下了什么? 不知不觉间虚度了40年光阴,看着父母逐渐的苍老和孩子逐渐长大,看着自己发福的身材,已知道自己在这个陌生的城市里已经扎根,估计是很难再去哪里了.回首故里似乎和 ...

  3. 给玩得好的女朋友写了一份前端学习路线。

    利用这几天的碎片化时间,给在座的各位"朋友"整理了一份适合大部分开发者的前端自学开发路线. 无论你是非科班还是在校的大专生,或者是其他领域的开发者,希望这份开发路线可以更好的帮助你 ...

  4. 用对比学习训练说话人初步验证模型

    作者|OngKoonHan 编译|Flin 来源|towardsdatascience 在我大学的Android开发课程的组项目部分中,我们的团队构建并部署了一个认证系统,通过说话人的语音配置文件进行 ...

  5. 学习记录668@项目管理之项目沟通管理和干系人管理

    书上这部分的内容很无趣.很花里花哨.很杂乱,所以本文只摘取我认为比较有用和有意义的片段. 沟通方式 在发送方自认为已经掌握了足够的信息,有了自己的想法且不需要进一步听取多方意见时,往往选择控制力极强. ...

  6. 23年5月高项学习笔记12 —— 干系人管理

    过程: 1. 识别干系人:定期识别干系人,分析和记录他们的利益,参与度.相互依赖性.影响力和对项目的潜在的影响 输入:立项管理文件.沟通管理计划.干系人参与计划.需求文件.变更日志.问题日志.协议(协 ...

  7. 2021年web前端开发视频教程,自学web前端开发技术,全套web前端学习路线笔记

    2021年web前端开发视频教程,自学web前端开发技术,全套web前端学习路线笔记 [导读]:初学web前端的小伙伴经常会遇到的问题,1.没方法 2.没资源 3.没经验,不知道从何开始 ,代码哥(D ...

  8. 2020年最新前端学习路线

    这段日子在 B 站上收到小伙伴最多的要求就是出一个前端学习路线,我能够充分的感受到大家抓耳挠腮加挠墙的迷茫~所以在这里给大家总结了一套前端学习路线.先从初级前端工程师所需的技能开始,然后一路升级到高级 ...

  9. 前端学习资料及路线名称网站

    IT前端学习资料及路线 名称 网站 JQuery文件网 https://code.jquery.com/jquery/ jQuery手册(pc端) http://jquery.cuishifeng.c ...

最新文章

  1. 超详细解读ORB-SLAM3单目初始化(下篇)
  2. 【时间序列】再次出发!FaceBook 开源一站式服务时序利器 Kats !
  3. jenkins war包_Jenkins的安装和部署(jenkins教程)
  4. stringutils_番石榴分配器vs StringUtils
  5. unity中怎么在InspectorI面板加LOGO
  6. linux组成,Linux学习笔记之Linux组成及初识
  7. java设计模式之模板方法
  8. python编程例子-几个python编程例子
  9. 经典单片机课程设计题目大全【大学教授珍藏资料】
  10. keras 中文文档学习一
  11. 天轰穿典型三层架构留言本9级视频教程
  12. u盘写保护+计算机管理,U盘写保护的解决方法
  13. php三级分销思路 数据库设计_微信分销相关的数据表结构设计
  14. 《ROS2机器人建模URDF》8.2RVIZ2可视化移动机器人模型
  15. 嵌入式软件项目流程、项目启动说明书(示例)
  16. 02_Unity小窍门100条(中)
  17. LASSO回归与L1正则化 西瓜书
  18. python定义一个圆类_python设计一个Circle(圆)类,包括圆心位置`,半径,颜色等属性。编写构造方法和其他方法,计算周长和面积。...
  19. iOS开发之移动应用海外推广平台资源总结
  20. CentOS8_CA

热门文章

  1. grpc ssl使用
  2. lucene api
  3. Zend Server搭建网站备注
  4. jquery +做CheckBoxList全选,反选
  5. 在国外千万不要以为别人都听不懂中文
  6. linux ssh Unused,安装openssh-portable时遇到的问题及解决办法
  7. oracle查出连续5行,Oracle期末考试复习题2
  8. array python 交集_Python基础(二)——列表和元组
  9. Android浏览器速度测试,Android平台浏览器网页加载速度对比评测
  10. php 开发框架 (资料收集)