Js开发-Node技术-服务器MVC架构

userModel

/* global module, require */
var mongoose = require('mongoose');

// ユーザの情報を保持するクラス
/**
 * @type {MongoSchema}
 */
const userSchema = mongoose.Schema({
    // ユーザー名前
    user_name: {type: String},
    // ユーザー名前
    user_mail: {type: String},
    // パスワード
    user_password: {type: String},
    // 権限
    user_auth: {type: Number}
});

/**
 * @typedef {MongoDocument} User
 * @property {string} userId
 * @property {number} userName
 * @property {number} userMail
 * @property {number} password
 * @property {number} userAuth
 */

/**
 * @type {User}
 */
module.exports = mongoose.model('User', userSchema);

 userHelper

var _ = require('lodash');
var UserModel =require('../model/userModel');

exports.user_register_execute = async function user_register_execute(res, newUser) {
    let findRes = await db_find_user_exist(newUser);

    if(findRes) {
        let insertRes = await db_insert_new_user(newUser);
        if(insertRes) {
            res.render('login', { res: '1' });    // 注册成功
        } else {
            res.render('register', { res: '0' });  // 注册失败
        }
    } else {
        res.render('register', { res: '0' });      // 用户存在
    }
}

function db_find_user_exist(userInfo) {
    // db.UserModel.find({$or: [{age: 22}, {age: 25}]});
    // 相当于:select * from userInfo where age = 22 or age = 11
    return new Promise(function (resolve, reject) {
        UserModel.find({$or:[{user_name: userInfo.user_name}, {user_mail : userInfo.user_mail}]}, function (err, data) {
            if(err) {
                resolve(false);
            } else {
                resolve(true);
            }
        });
    });
}

function db_insert_new_user(UserInfo) {
    let newUser = new UserModel({
        user_name : UserInfo.user_name,
        user_mail : UserInfo.user_mail,
        user_password : UserInfo.user_password,
        user_auth : UserInfo.auth
    });

    return new Promise(function (resolve, reject) {
        newUser.save(function (err, data) {
            if (err) {
                console.log(err);
                 reject(false);
            } else {
                console.log(data);
                 resolve(true);
            }
        })
    });
}

exports.user_login_execute = async function user_login_execute(res, user_login_info) {
    let findRes = await db_check_user_on(user_login_info);
    if(_.isEmpty(findRes)) {
        res.render('index', { res: '1' });  // 登录失败
    } else {
        if (user_login_info.user_name == "admin") {
            res.render('admin', { res: findRes });  // 管理员登录成功
        } else {
            res.render('index', { res: '0' });  // 普通用户登录成功
        }
    }
}

function db_check_user_on(userInfo) {

    let wherestr = {'user_name': userInfo.user_name, 'user_password':userInfo.user_password};

    return new Promise(function (resolve, reject) {
        UserModel.find(wherestr, function (err, data) {
            if(err) {
                reject(err);
            } else {
                resolve(data);
            }
        });
    });
}

 userController

var userHelper = require('../logic/userHelper');

exports.user_register = function user_register(req, res, next) {

    console.log("user_register");

    var user_info = {
        user_name : req.body.user_name,
        user_mail : req.body.user_mail,
        user_password  : req.body.user_password,
        user_auth : 1
    }

    return userHelper.user_register_execute(res, user_info);
}

exports.user_login = function user_login(req, res) {

    console.log("user_login");

    var user_login_info = {
        user_name : req.body.user_name,
        user_mail : req.body.user_name,
        user_password  : req.body.user_password,
    }
    return userHelper.user_login_execute(res, user_login_info);
}

 

posted on 2019-08-20 21:45  小魔一剑  阅读(9)  评论(0)    收藏  举报