Rendre tous les champs requis dans Mongoose
Mangouste semble défaut de tous les champs qui ne sont pas nécessaires. Est-il possible de faire tous les champs requis, sans changer de:
Dimension = mongoose.Schema(
name: String
value: String
)
à
Dimension = mongoose.Schema(
name:
type: String
required: true
value:
type: String
required: true
)
Il va être vraiment laid car j'ai beaucoup de à ces.
source d'informationauteur maxko87
Vous devez vous connecter pour publier un commentaire.
Vous pourriez faire quelque chose comme:
ou pour tous les attrs (à l'aide de souligner, ce qui est génial):
J'ai fini par faire ceci:
et pour les autres types de données.
Tous les champs de propriétés sont en
schema.paths[attribute]
ouschema.path(attribute)
;Un bon chemin à faire : définir lorsqu'un champ n'est PAS obligatoire,
et les faire requis par défaut :
Le trait de soulignement façon :
Tester :
Eh bien, vous pourriez écrire une mangouste schéma plugin fonction qui marchait le schéma de l'objet et il est réglé pour faire de chaque champ obligatoire. Puis vous auriez juste besoin d'1 ligne par le schéma:
Dimension.plugin(allRequired)
.Mangouste n'ai pas fournir la méthode de configuration de tous les champs, mais vous pourriez le faire de manière récursive.
Comme Peter mentionné, vous pourriez pluginize afin de réutiliser le code.
De manière récursive réglage:
Pluginized:
Je ne suis pas sûr si il ya un moyen plus facile de le faire dans la Mangouste, mais je voudrais effectuer les opérations suivantes dans votre IDE/éditeur:
Liste de vos champs comme vous le feriez normalement:
Puis faire une rechercher et remplacer sur
String
et de le remplacer avec{type: String, required: true},
vous Donnant:Puis faire de même pour
Number
et d'autres types.Appuyant sur les réponses précédentes, le module ci-dessous feront les champs requis par défaut. Les réponses précédentes n'est pas une boucle imbriquée objets/tableaux.
Utilisation:
Nœud du module: