我想从我的控制器直接访问模型中存在的
character
枚举数组,这样我就不必在控制器中对数组进行硬编码。有没有一种简单的方法可以做到这一点,或者我应该将数组存储为模型中的变量,然后将其与模型一起导出?
testModel.js:
const mongoose = require("mongoose");
const testSchema = new mongoose.Schema({
character: {
type: String,
enum: [
"mario",
"luigi",
"link",
"samus"
],
required: [true, "Please provide a character"],
},
});
const Savestate = mongoose.model("Test", testSchema);
module.exports = Test;
控制器.js
exports.getCharacterSavestates = catchAsync(async (req, res, next) => {
// Instead of this array I want to do something like: const characters = model.character.enum
const characters = [
"mario",
"luigi",
"link",
"samus",
];
if (!characters.includes(req.params.character)) {
return next(new AppError("Character name invalid"), 400);
}
const documents = await Model.find({ character: req.params.character });
res.status(200).json({
status: "success",
results: .length,
data: { data: documents },
});
});