Dado el siguiente modelo de usuario:
const UserSchema = new mongoose.Schema({ id: Number, userID: { type: String, unique: true }, userName: String, password: {type: String, select: false}, isAdministrator: { type: Boolean, default: false } }, { timestamps: true });Este modelo garantiza que la contraseña no se devuelva en caso de una solicitud.
¿Cómo cambio el modelo de usuario para que se devuelva la contraseña para la ruta A y no para la ruta B?
Por ejemplo:
router.get('/A', [returns password]) router.get('/B', [returns no password])En su controlador, donde ejecuta su Mongoose Query, por ejemplo:
User.findOne({email})agrega una función de selección y coloca entre paréntesis el campo que desea seleccionar, por ejemplo:
User.findOne({email}).select("+password")Si pones un "-" excluirá el campo, si no pones ningún símbolo seleccionará ese campo, el "+" fuerza la selección de los campos que tengan definida en el esquema la propiedad "select false".