Assurer une unique valeur d'un champ dans bouclage du modèle
Comment garantir l'unicité d'un champ particulier de bouclage du modèle.
Comme ci-dessous est le modèle Post, j'ai un champ genericId en elle, je veux qu'il soit unique dans la base de données, et de bouclage à travers une erreur, sur le double de la clé de l'insertion.
{
"name": "Post",
"plural": "Post",
"base": "PersistedModel",
"properties": {
"genericId": {
"type": "string",
"required":True
},
"moderatedAt": {
"type": "date"
}
},
"validations": [],
"acls": [],
"methods": []
}
J'ai essayé de chercher il y a de la documentation, et d'autres exemples, mais sans succès.
Une solution qui, je pense, de créer un remoteHook à la création de la fonction, et de valider ce champ avant de l'insérer, mais à la recherche d'une autre façon.
- vous pouvez également appliquer l'unicité de votre base de données directement
- Oui, Strongloop de LoopbackJS documentation est incroyablement misérable.
Vous devez vous connecter pour publier un commentaire.
Ensemble validation règle dans votre
common/models/post.js
Ne sais pas si c'est la meilleure façon d'atteindre l'unicité, mais vous pouvez trouver ici les docs sur l'indexation de votre modèle.
Il suffit d'ajouter un index unique sur le champ que vous voulez, et le tour est joué !
Pour votre modèle, ce serait :
Toutefois, si le
genericId
domaine est l'Id du modèle, je vous suggère de le déclarer comme tel, de sorte que vous pouvez utiliserfindById
méthode, et aussi d'éviter la création d'un doubleid
champ, ce qui va vous arriver si vous ne déclarez pas tout dans votre modèle.id
prop (àtrue
) dans le champ json définition.La période d'Analyse v4 solution ressemble à ceci: