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); }
浙公网安备 33010602011771号