nodejs 컨트롤 러 층 패키지

2829 단어 Parse
저자: 단 공 방 기술 부 - 진문 철
MODEL 층 을 봉 한 후에 우 리 는 어떤 시 계 를 조작 하려 고 하 는 지, 대응 하 는 MODEL 변 수 를 정의 하면 된다.그래도 귀 찮 습 니 다. 한 업무 에서 여러 장의 표를 조작 해 야 할 수도 있 습 니 다. db 변 수 를 정의 할 방법 이 없 습 니까? 제 가 데 이 터 를 어떻게 조작 하고 싶 으 면 데 이 터 를 어떻게 조작 합 니까?
안전성 등 을 떠 나 답 은 있 고 간단 하 다.봉 인 된 디 렉 터 리 구 조 를 먼저 보 세 요.
  • MODEL
  • BaseMODEL.js
  • UserMODEL.js

  • Controller
  • oData.js
  • NormalController.js

  • rount.js

  • BaseMODEL.js
    exports.statics = {
        Find : function( query, data ) {
            if(!query.limit){
                query.limit = 1000;
            }
            if(!query.order){
                query.order = "-createdAt";
            }
            if(!query.include){
                query.include = "";
            }
            return this.find(query.where).populate(query.include).limit(query.limit).sort(query.order).exec( data );
        },
        Update : function( query,data){
            query.data.updatedAt = Date.now();
            return this.update({_id:query._id},query.data).exec(data);
        }
    };
    

    UserMODEL.js
    var Schema = require('mongoose').Schema;
    var MODEL = Schema({
        UserName: String,
        Password: String
        createdAt:{
            type:Date,
            default:Date.now()
        },
        updatedAt:{
            type:Date,
            default:Date.now()
        }
    }, {collection: "User"});
    //   MODEL         
    var BaseMODEL = require("./BaseMODEL");
    MODEL.statics = BaseMODEL.statics;
    
    /* global db */
    module.exports = db.model('UserMODEL', MODEL);
    

    oData.js
    exports.find = function(inputData,callback){
        var MODEL;
        if(inputData.table == "User"){
            MODEL = require("../MODEL/UserMODEL");
        }
        //else if          
        if(MODEL){
            MODEL.Find({
                "where":inputData.where,
                "include":inputData.include,
                "limit":inputData.limit,
                "skip":inputData.skip
            },function(err,data){
                //  
                callback(err,data)
            });
        }
    }
    

    NormalController.js
    var db = require("./oData");
    
    exports.index = function(req, res) {
        db.find({
            "table":"User",
            "where":{
                "Type":"Admin"
            }
        },function(err,data){
            console.log(data);
            //       
            db.find({
                "table":"User",
                "where":{
                    "Type":"User"
                }
            },function(err,data){
                console.log(data);
                //       
                res.render('index',data);
            });
        });
    }
    

    지금 업무 쓰 는 게 훨씬 간단 하지 않 아 요?하지만 계속 확장 할 수 있 을까요?빨리 확장 하면 프레임 이 될 것 같은 데..

    좋은 웹페이지 즐겨찾기