Cacher un/des attribut(s) d'un model dans sailsJS
Aujourd'hui nous allons travailler sur la disponibilité des attributs dans nos models
Notre cas d'étude se portera sur le model User
En effet, ce model contient des informations confidentielles tel que les mots de passes, etc...
Pour cela, nous allons nous rendre dans notre model situé dans api/models/User.js
Dans cette séquence, nous verrons 2 possibilités pour afficher/cacher des attributs
Pour jouer avec nos attributs, nous allons surcharger la méthode toJSON depuis l'objet attributes
module.exports = { attributes: { username: 'string', password: 'string', toJSON: function(){ //Notre code ici } }, };
1. Suppression d'attributs
La première méthode consiste à supprimer les attributs de notre objet avant de le retourner
module.exports = { attributes: { username: 'string', password: 'string', toJSON: function(){ var obj = this.toObject(); delete obj.password; return obj; } }, };
depuis l'url '/user', vous aurez toutes vos données excepté password
Dans cette seconde méthode, nous retournons un objet contenant les champs qui nous interessent
module.exports = { attributes: { username: 'string', password: 'string', toJSON: function(){ var obj = this.toObject(); return { username: obj.username, createdAt: obj.createdAt }; } }, };
De la même manière, vous n'aurez que les attributs username & createdAt pour /user