SailsJS empêche les données indésirables d'entrer dans la base de données
-
21-12-2019 - |
Question
Ainsi, avec sailsJS, vous pouvez simplement mettre n'importe quelle ancienne donnée dans votre modèle et la mettre dans la base de données même si l'élément n'est pas défini dans le fichier. attributes
objet.
Existe-t-il un moyen d'empêcher que cela se produise ?ça semble idiot d'essayer de faire un if
puis lancez des erreurs car il y aurait trop de choses à arrêter.
Par exemple, je viens de rencontrer le problème où j'ai une liste d'utilisateurs et je les affiche via angulaire ng-repeat
sur le frontend et quand je put
les données pour enregistrer un utilisateur, il décide également que "$$hashKey": "00I"
va avec eux aussi !
Ainsi, il est automatiquement enregistré dans la base de données et lorsque j'actualise et récupère à nouveau les données, le "$$hashKey": "00I"
revient, et provoque donc cette erreur
Erreur:[ngRepeat:dupes] Les doublons dans un répéteur ne sont pas autorisés.Utilisez l'expression «Track by» pour spécifier des clés uniques.Répétiteur:(clé, utilisateur) dans les administrateurs | Filtre: utilisation, touche en double:objet:00I
Cela vient d'angulaire.
p.s.
pour autant que je sache, le serveur utilise le disque Sails par défaut
La solution
Le mode par défaut des modèles Sails.js est sans schéma, ce qui n'est probablement pas ce dont vous avez besoin.Il ne vous reste donc plus qu'à ajouter un schéma à votre modèle :
module.exports = {
schema: true,
attributes: {
// Define all your attributes here...
}
};
Après cela, toutes les valeurs qui ne sont pas décrites dans le attributes
sera automatiquement filtré lors de la sauvegarde du modèle.