我正在 Nodejs 中编写代码,需要为“流程”模式的文档实现全局queueCount,是否有某种方法可以在模式级别存储静态变量(如方法),这些变量可以由构成模型的所有文档共同访问该架构,我还需要修改queueCount。 如果有另一个更好的选择,无需深入研究也可以工作的模式,请建议(基本上需要一个全局变量,它不是易失性的(在服务器重新启动或崩溃时重置),最好存储在数据库而不是服务器实例上)
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const constants = require('../constant/constant');
const QueueProcessSchema = new Schema({
projectId: {
required: true,
type: Schema.Types.ObjectId,
ref: 'Project'
},
status: {
type: String,
enum: constants.processStatus
},
version: {
type: String
},
isPublic: {
type: Boolean,
required: true,
default: false
},
queueRank: {
type: Number,
default: -1
}
});
QueueProcessSchema.plugin(require('mongoose-timestamp'));
QueueProcessSchema.plugin(require('mongoose-delete'), {
overrideMethods: true,
deletedAt: true
});
也许 Schema.prototype.method() 可能对您有用。它允许您向 shemas 添加自定义方法,并且在您的情况下可用于返回任意值。例如:
QueueProcessSchema.method('Everest', function () {
return 8848.86;
});
const queueProcess = mongoose.model('QueueProcess', QueueProcessSchema);
const doc = new queueProcess;
doc.Everest();
// 8848.86