简单用户管理系统(P-05)

243 阅读1分钟

系列第一个05

Node接口搭建-使用全球公认头像gravatar

const express = require('express');
const router = express.Router();
const bcrypt = require("bcrypt");
var gravatar = require('gravatar'); // 头像
const User = require("../../models/User");

router.get('/test', (req, res) => {
    res.json(
        {
            code: 0,
            msg: "test数据获取成功"
        }
    )

})


// 注册接口
router.post('/register', (req, res) => {
    // console.log(req.body.email);
    const rObj = req.body;

    // 要注册,需要先去验证下是否邮箱重复
    User.findOne({ email: rObj.email })
        .then(user => {
            if (user) {
                res.status(200).json({
                    code: 2,
                    msg: `当前邮箱 { ${rObj.email} }已经存在`,
                })
            } else {
                const  avatar = gravatar.url(req.body.email, {s: '200', r: 'pg', d: 'mm'});

                const newUser = new User({
                    name: rObj.name,
                    password: rObj.password,
                    avatar,
                    email: rObj.email
                });

                // 我们需要对密码进行加密
                bcrypt.genSalt(10, (err, salt) => {
                    bcrypt.hash(newUser.password, salt, (err, hash) => {
                        if(err) throw err;
                        newUser.password = hash;
                    })
                });
                newUser.save()
                    .then(user => {
                        res.status(200).json(
                            {
                                code: 0,
                                msg: "新增用户成功!",
                                data: user
                            }
                        )
                    })
                    .catch(err => res.json(
                        {
                            code: 1,
                            msg: "操作失败,请重试!"
                        }
                    ));
            }
        })


});

module.exports = router;






/**
 
{
    cdoe: 0 成功
    code:1 失败
    code:2 数据已存在或字段已存在
    code:3 数据未作任何更新
    code:110 登陆超时或者登陆失效,或者非法登陆用户
}
 */