Bonjour,
Voila je me demande s'il m'est possible de créer un constructeur dans mon schema, plutôt que de copier chaque variables ?
Apparement ça me plante le serveur, donc soit ce n'est pas possible, soit je m'y prend mal ? Je me suis inspiré des Class de model que j'utilise dans Angular et qui côté Front fonctionne à merveille. L'idée est bien évidement d'être un peu faineant dans la construction de mes API ;-)
const Model = require('../models/utilisateurs');
exports.create = (req, res, next) => { const model = new Model({
name: req.body.name,
surname: req.body.surname,
email: req.body.email,
function: req.body.function,
mobile: req.body.mobile,
profil: req.body.profil,
photoUrl: req.body.photoUrl,
main: req.body.main,
admin: req.body.admin,
activ: req.body.activ });
model.save().then( () => { res.status(201).json({ message: 'Post saved successfully!' });
} )
.catch( (error) => {
res.status(400).json({ error: error });
} );
};
Décrivez ici votre code ou ce que vous cherchez à faire
const model = new Model( req.body)
Côté model:
const mongoose = require('mongoose');
utilisateursSchema = mongoose.Schema({
name: { type: String, required: true },
surname: { type: String },
email: { type: String, required: true },
function: { type: String },
mobile: { type: String },
profil: { type: String },
photoUrl: { type: String },
main: { type: Boolean },
admin: { type: Boolean },
activ: { type: Boolean }
constructor(value?)
{ value = value || {};
this.name = value.name || '';
this.surname = value.surname || '';
this.email = value.email || '';
this.function = value.function || '';
this.mobile = value.mobile || '';
this.profil = value.profil || '';
this.admin = value.admin || false;
this.main = value.main || false;
this.activ = value.activ || true;
this.photoUrl = value.photoUrl || 'assets/images/avatars/profile.jpg';
}});
module.exports = mongoose.model('Utilisateurs', utilisateursSchema);