Ниже моя схема
var makerSchema = new mongoose.Schema({
materials:[
{
type: String,
required:[true, "Material is a required field"],
trim:true,
lowercase:true,
enum:{
values:['wood','metal','plastic','glass','concrete','other'],
message: 'Please choose from the given options only!'
}
}
]
},{
timestamps:true
})
var Maker = mongoose.model('Maker', makerSchema);
Ниже мой маршрут
router.post('/maker', async (req, res) => {
try {
var maker = new Maker(req.body);
await maker.save();
res.status(200).send();
} catch (error) {
if (error.name === "ValidationError") {
let errors = {};
Object.keys(error.errors).forEach((key) => {
errors[key] = error.errors[key].message;
});
return res.status(400).send(errors);
}
res.status(500).send(error);
}
})
Ниже моя форма, в которой я могу выбрать несколько элементов, удерживая Ctrl и щелкая опции.
<form action="/maker" method="POST">
<select multiple class="form-control" id="materials" name="materials">
<option>Wood</option>
<option>Metal</option>
<option>Glass</option>
</select>
<input type="submit" value="Submit">
</form>
Но если я выберу одну опцию, я получаю следующую ошибку, хотя она отлично работает для нескольких опций:
{"materials.0":"Please choose from the given options only!"}
Как мне разрешить эту ошибку и позволить пользователям выбирать не только несколько, но и несколько одиночные варианты тоже?