检查用户名和邮箱
前置内容
本文内容中未定义的方法和函数请先阅读:
- 【云剪切板——统一后端返回数据格式】:https://www.hyz.cool/articles/209
- 【Nodejs express 连接Mysql】:https://www.hyz.cool/articles/207
路由
- UserController.js
const express = require("express")
const UserController = express.Router();
const UserService = require("../services/UserService")
/**
* 检查用户名
*/
UserController.get("/check/username",UserService.checkUsername)
module.exports = UserController
js
数据库查询
- UserDao.js
import {Query} from "../services/MysqlService";
/**
* 获取用户
* @param username
* @returns {*}
*/
export function getUser(username) {
return Query("SELECT * FROM `tb_user` WHERE `name` = ? OR `email` = ? ",[username,username])
}
js
服务实现
- UserService.js
/**
* 检查用户名
*/
export const checkUsername = [
validator.query("username","用户名或者邮箱不能为空").isLength({min:1}),
(req,res,next)=>{
//校验参数
let validationResult = validator.validationResult(req);
if (!validationResult.isEmpty()) return Result.result(res, Result.invalidParams(validationResult.array()))
//拿到参数
let {username} = req.query;
UserDao.getUser(username).then(result=>{
if(result.length>0) return Result.result(res,Result.failed("用户名或邮箱已存在"))
return Result.result(res,Result.success("用户名或邮箱可以使用"))
}).catch(err=>{
console.log("Get User Error ...",err)
Result.result(res,Result.failed("检查失败"))
})
}
]
js