Browse Source

1.更新用户相关代码的import和export部分
2.加入公共基类

caiaolin 8 years ago
parent
commit
e03b100720

+ 44 - 0
modules/common/base/base_controller.js

@@ -0,0 +1,44 @@
+/**
+ * 控制器基类
+ *
+ * @author CaiAoLin
+ * @date 2017/6/29
+ * @version
+ */
+class BaseController {
+
+    /**
+     * 页面title
+     *
+     * @var string
+     */
+    title = '';
+
+    /**
+     * 构造函数
+     *
+     * @return {void}
+     */
+    constructor() {
+        if (new.target === BaseController) {
+            throw new Error('BaseController不能实例化,只能继承使用。');
+        }
+    }
+
+    /**
+     * 初始化函数
+     *
+     * @param {object} request
+     * @param {object} response
+     * @param {function} next
+     * @return {void}
+     */
+    init(request, response, next) {
+        // 页面标题
+        response.locals.title = 'test';
+
+        next();
+    }
+}
+
+export default BaseController;

+ 60 - 0
modules/common/base/base_model.js

@@ -0,0 +1,60 @@
+/**
+ * 数据模型基类
+ *
+ * @author CaiAoLin
+ * @date 2017/6/22
+ * @version
+ */
+import MongooseHelper from "../helper/mongoose_helper";
+
+class BaseModel {
+
+    /**
+     * mongoose数据模型
+     *
+     * @var {object}
+     */
+    model = null;
+
+    /**
+     * 构造函数
+     *
+     * @return {void}
+     */
+    constructor() {
+        if (new.target === BaseModel) {
+            throw new Error('BaseModel不能实例化,只能继承使用。');
+        }
+    }
+
+    /**
+     * 初始化函数
+     *
+     * @return {void}
+     */
+    init() {
+        if (this.model === null) {
+            throw new Error('子类数据有误');
+        }
+
+        this.db = new MongooseHelper();
+        this.db.model = this.model;
+    }
+
+    /**
+     * 根据id查找对应数据
+     *
+     * @param {string} id
+     * @return {Promise}
+     */
+    async findDataById(id) {
+        if (id === '' || id === undefined) {
+            return null;
+        }
+        let data = await this.db.findOne({_id: id});
+        console.log(data);
+    }
+
+}
+
+export default BaseModel;

+ 30 - 27
modules/users/libraries/database/mongoose_helper.js

@@ -8,6 +8,13 @@
 class MongooseHelper {
 
     /**
+     * mongoose连接对象
+     *
+     * @var {object}
+     */
+    connect = null;
+
+    /**
      * mongoose数据模型
      *
      * @var {object}
@@ -55,6 +62,27 @@ class MongooseHelper {
     }
 
     /**
+     * 关联查找数据
+     *
+     * @param {object} conditions
+     * @param {object} fields
+     * @param {String|Object} populate
+     * @return {Promise}
+     */
+    findWithPopulate(conditions, fields = null, populate = '') {
+        let self = this;
+        return new Promise(function (resolve, reject) {
+            self.model.find(conditions, fields).populate(populate).exec(function(error, data) {
+                if (error) {
+                    reject(error);
+                } else {
+                    resolve(data);
+                }
+            });
+        });
+    }
+
+    /**
      * 查找且更新(原子操作)
      *
      * @param {object} update
@@ -67,7 +95,7 @@ class MongooseHelper {
         return new Promise(function (resolve, reject) {
             self.model.findOneAndUpdate(condition, update, options, function(error, data) {
                     if (error) {
-                        reject(null);
+                        reject(error);
                     } else {
                         resolve(data);
                     }
@@ -94,31 +122,6 @@ class MongooseHelper {
         });
     }
 
-    /**
-     * 更新操作
-     *
-     * @param {object} condition
-     * @param {object} updateData
-     * @return {Promise}
-     */
-    update(condition, updateData) {
-        let self = this;
-        return new Promise(function (resolve, reject) {
-            let validate = new self.model(updateData);
-            let validateError = validate.validateSync();
-            if (validateError) {
-                reject(validateError);
-            }
-            self.model.update(condition, {$set: updateData}, function(error, result) {
-                if (error) {
-                    reject(error);
-                } else {
-                    resolve(result);
-                }
-            });
-        });
-    }
-
 }
 
-module.exports = MongooseHelper;
+export default MongooseHelper;

+ 4 - 4
modules/users/controllers/boot_controller.js

@@ -5,9 +5,10 @@
  * @date 2017/6/12
  * @version
  */
-let UserModel = require("../models/user_model");
+import UserModel from "../models/user_model";
+import BaseController from "../../common/base/base_controller";
 
-class BootController {
+class BootController extends BaseController {
 
     /**
      * 引导页
@@ -28,5 +29,4 @@ class BootController {
     }
 
 }
-
-module.exports = BootController;
+export default BootController;

+ 2 - 3
modules/users/controllers/login_controller.js

@@ -5,8 +5,7 @@
  * @date 2017/6/8
  * @version
  */
-let Request = require('request');
-let UserModel = require("../models/user_model");
+import UserModel from "../models/user_model";
 
 class LoginController {
 
@@ -76,4 +75,4 @@ class LoginController {
 
 }
 
-module.exports = LoginController;
+export default LoginController;

+ 2 - 1
modules/users/controllers/user_controller.js

@@ -6,8 +6,9 @@
  * @version
  */
 import UserModel from "../models/user_model";
+import BaseController from "../../common/base/base_controller";
 
-class UserController {
+class UserController extends BaseController {
 
     /**
      * 用户信息页面

+ 1 - 1
modules/users/models/schema/user.js

@@ -26,4 +26,4 @@ let schema = {
     create_time: Number
 };
 
-module.exports = mongoose.model(collectionName, new Schema(schema, {versionKey: false}));
+export default mongoose.model(collectionName, new Schema(schema, {versionKey: false}));

+ 12 - 63
modules/users/models/user_model.js

@@ -5,19 +5,11 @@
  * @date 2017/6/9
  * @version
  */
-let mongoose = require("mongoose");
-let MongooseHelper = require("../libraries/database/mongoose_helper");
-let userSchema = require("./schema/user");
-let Request = require("request");
+import userSchema from "./schema/user";
+import Request from "request";
+import BaseModel from "../../common/base/base_model"
 
-class UserModel {
-
-    /**
-     * db句柄
-     *
-     * @var {object}
-     */
-    db = null;
+class UserModel extends BaseModel {
 
     /**
      * 企业所在地区
@@ -40,50 +32,6 @@ class UserModel {
      */
     companyScale = ['1-20', '20-50', '50-100', '100+'];
 
-    /**
-     * 默认结构
-     *
-     * @var {object}
-     */
-    defaultSchema = {
-        username: String,
-        email: String,
-        mobile: String,
-        real_name: String,
-        company: String,
-        province: String,
-        area: Number,
-        company_type: Number,
-        company_scale: Number,
-        last_login: Number,
-        create_time: Number
-    };
-
-    /**
-     * 登录验证结构
-     *
-     * @var {object}
-     */
-    loginSchema = {
-        username: {
-            type: String,
-            required: true
-        },
-        email: {
-            type: String,
-            required: true
-        },
-        mobile: {
-            type: String,
-            required: true,
-            validate: {
-                validator: function(v) {
-                    return /^1([34578]\d)\d{8}$/.test(v);
-                },
-                message: '{VALUE} is not a valid phone number!'
-            },
-        }
-    };
 
     /**
      * 构造函数
@@ -91,8 +39,9 @@ class UserModel {
      * @return {void}
      */
     constructor() {
-        this.db = new MongooseHelper();
-        this.db.model = userSchema;
+        let parent = super();
+        parent.model = userSchema;
+        parent.init();
     }
 
     /**
@@ -178,14 +127,14 @@ class UserModel {
      * @return {object}
      */
     findDataByName(username) {
-        return this.db.find({username: username});
+        return this.db.model.find({username: username});
     }
 
     /**
      * 新增用户
      *
      * @param {object} userData
-     * @return {Promise}
+     * @return {Promise|boolean}
      */
     addUser(userData) {
         let insertData = {
@@ -201,7 +150,7 @@ class UserModel {
             create_time: new Date().getTime(),
             area: 0
         };
-        return this.db.create(insertData);
+        return this.db.model.create(insertData);
     }
 
     /**
@@ -214,9 +163,9 @@ class UserModel {
         if (Object.keys(condition).length <= 0 || Object.keys(updateData).length <= 0) {
             return null;
         }
-        return this.db.update(condition, updateData);
+        return this.db.model.update(condition, updateData);
     }
 
 }
 
-module.exports = UserModel;
+export default UserModel;

+ 2 - 3
modules/users/routes/boot_route.js

@@ -5,11 +5,10 @@
  * @date 2017/6/12
  * @version
  */
+import express from "express";
+import BootController from "../controllers/boot_controller";
 
-let express = require('express');
 let router = express.Router();
-let BootController = require('../controllers/boot_controller');
-
 let bootController = new BootController();
 
 // 引导页面

+ 3 - 2
modules/users/routes/login_route.js

@@ -5,9 +5,10 @@
  * @date 2017/6/1
  * @version
  */
-let express = require('express');
+import express from "express";
+import LoginController from "../controllers/login_controller";
+
 let router = express.Router();
-let LoginController = require('../controllers/login_controller');
 let loginController = new LoginController();
 
 // 登录页面action