在猫鼬中组织静态函数

时间:2017-07-19 12:54:59

标签: javascript node.js mongodb mongoose mongoose-schema

我正在使用mongodb在节点js中构建应用程序。我使用猫鼬作为ODM。 问题是我在mongoose模型中有很多静态函数附加到模式。

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ObjectId = Schema.Types.ObjectId;

var userSchema = new Schema({
    profile: {
      firstName: { type: String },
      lastName: { type: String }
    },
    auth:{
      username:{ type: String },
      password:{ type: String }
    },
    account:{
      status:{ type: Boolean, default: false }
    }
 });

userSchema.statics.function1 = function(params, callback){
    //some operation
}

userSchema.statics.function2 = function(params, callback){
    //some operation
}

userSchema.statics.function3 = function(params, callback){
    //some operation
}

userSchema.statics.function4 = function(params, callback){
    //some operation
}

//.... upto 50 to 70 static functions


var User = mongoose.model('User', userSchema);
module.exports = User;

有没有办法在另一个文件(或模块)中编写这些函数,并将它们导入并附加到模式。 感谢。

1 个答案:

答案 0 :(得分:0)

我自己没有尝试过,但也许只是将静态分组在一个文件中并将它们分配给模式中的静态属性?此外,也许您可​​以使用查询构建器来查询数据库,而不是创建非常具体的静态数据。