Estoy tratando de calcular el IMC de un usuario y enviarlo a mi base de datos de atlas de MongoDB, el IMC se calculará a través de la altura y el peso que ingresen los usuarios, configuré un esquema Mongoose que establece la función, pero en este punto mi IMC no se muestra en la solicitud de publicación, ¿alguien puede guiarme en la dirección correcta?
const mongoose = require('mongoose'); const users = mongoose.Schema({ username:{ type: String, required: true }, first:{ type: String, required: true }, last:{ type: String, required: true }, occupation:String, profile:{ age:{ type: Number, required: true }, sex:{ type: String, required: true }, height:{ type: Number, required: true }, weight:{ type: Number, required: true }, //Issue is here. Trying to use the Schema to 'pre' calculate bmi:{ type: Number, get: () =>{ let BMI = weight/height ** 2 return BMI }, set: BMI => BMI, alias: 'bmi', }, eyeColor: String, incomePM: Number, interestedIn: String } }) module.exports = mongoose.model('users', users);Intenta usar el pre middleware de mongoose,
const mongoose = require('mongoose'); const users = mongoose.Schema({ username:{ type: String, required: true }, first:{ type: String, required: true }, last:{ type: String, required: true }, occupation:String, profile:{ age:{ type: Number, required: true }, sex:{ type: String, required: true }, height:{ type: Number, required: true }, weight:{ type: Number, required: true }, bmi:{ type: Number, }, eyeColor: String, incomePM: Number, interestedIn: String } }) users .pre('save', function(next){ console.log(this.profile.weight); console.log(this.profile.height); this.profile.bmi = (this.profile.weight/this.profile.height) ** 2; next(); }); module.exports = mongoose.model('users', users);