【发布时间】:2021-06-18 06:30:02
【问题描述】:
将 CASL 与 Express 和 Mongoose 结合使用,当我使用 accessibleFieldsPlugin 时,结果中不包含虚拟字段。
这是一个错误,还是我必须采取一些解决方法才能将它们也包含在内?在这种情况下最好的做法是什么?
人物模型:
const personSchema = new mongoose.Schema({
fullName: {
type: String,
required: true
},
picture: {
type: String,
required: true
},
....
}, {
timestamps: true,
toObject: { virtuals: true },
toJSON: { virtuals: true }
});
personSchema.virtual('picturePath').get(function () {
if (this.picture != null) {
return path.join('/', uploadPath, this.picture)
}
return null;
});
personSchema.plugin(accessibleRecordsPlugin);
personSchema.plugin(accessibleFieldsPlugin);
module.exports.Person = mongoose.model('Person', personSchema, 'person');
【问题讨论】:
-
您可以为
accessibleFieldsPlugin:github.com/stalniy/casl/blob/master/packages/casl-mongoose/src/…提供自定义getFields选项。它接受可用于检索字段的猫鼬模式