user-edit-fn.js 816 B

12345678910111213141516171819202122232425
  1. const {User, validateUser} = require('../../model/user');
  2. const bcrypt = require('bcrypt');
  3. module.exports = async (req, res, next) => {
  4. try{
  5. // 实施验证
  6. await validateUser(req.body);
  7. }catch(e) {
  8. // 验证未通过
  9. // 重定向会用户添加页面
  10. return next(JSON.stringify({path: '/admin/user-edit', message: e.message}));
  11. }
  12. // 根据邮箱地址查询用户是否存在
  13. const user = await User.findOne({email: req.body.email});
  14. if(user){
  15. // 重定向会用户添加页面
  16. return next(JSON.stringify({path: '/admin/user-edit', message: '邮箱账号被占用'}));
  17. }
  18. // 对密码进行加密
  19. const salt = await bcrypt.genSalt(10);
  20. req.body.password = await bcrypt.hash(req.body.password, salt);
  21. await User.create(req.body);
  22. res.redirect('/admin/user');
  23. }