我正在尝试使用 Mongoose 改进我的 Nodejs 代码的文件结构。
我已经将每个模式分离到不同的文件中,但对于某些模式,方法和静态的数量非常大,我最终得到的模式文件太大(>1500 行)。
我想将不同文件中的方法和模式分开,并在模式中“要求”它们
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var UserSchema = new Schema({
email: String,
pwdhash: String,
});
UserSchema.methods.someMethod1 = function() {
// Do something 1
};
UserSchema.methods.someMethod2 = function() {
// Do something 2
};
var User = mongoose.model("User", UserSchema);
我希望它看起来像这样:
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var UserSchema = new Schema({
email: String,
pwdhash: String,
});
// Requiring methods
require("./methods/user.js");
var User = mongoose.model("User", UserSchema);
但是,在/methods/user.js 文件中,我找不到如何从 mongoose 实例中检索架构(仅模型)以分配方法。
我错过了什么吗?有没有更好的方法来分离方法和静态?
最佳答案
你可以这样做:
制作一个methods.js文件,并在methods文件中加入这段代码:
module.exports = function(UserSchema) {
UserSchema.methods.someMethod1 = function() {
// Do something 1
};
UserSchema.methods.someMethod2 = function() {
// Do something 2
};
}
在你的主文件之后,你必须这样做:
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var UserSchema = new Schema({
email: String,
pwdhash: String,
});
// Requiring methods
require("./methods.js")(UserSchema);
var User = mongoose.model("User", UserSchema);
我很确定这会起作用:)
关于node.js - 如何在 Mongoose 的不同文件中分离模式、方法和静态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47594651/