提问人:Surviving_JS 提问时间:11/9/2023 更新时间:11/9/2023 访问量:26
猫鼬静态变量/全局非易失性变量
Mongoose static variables/Global non volatile variable
问:
我正在 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
});
答:
0赞
jQueeny
11/9/2023
#1
也许 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
评论