Esquemas y Modelos

Una vez entendidos los conceptos principales para utilizar moongose, procedemos con crear nuestros modelos y esquemas de la API del carrito de compras, por lo cual necesitamos crear un modelo de productos. Dentro de la carpeta /api/product creamos un archivo: product.model.js, con el siguiente código.

api/product/product.model.js
/**
 * Product model
 */
 
const mongoose = require('mongoose');

const { Schema } = mongoose;

const ProductSchema = new Schema({
  name: { type: String, uppercase: true, required: true },
  availableQuantity: { type: Number, required: true },
  price: { type: Number, required: true },
  description: { type: String, required: true },
  image: { type: String },
  slug: { type: String, trim: true },
}, { timestamps: true });

ProductSchema
  .path('availableQuantity')
  .validate((availableQuantity) => {
    if (availableQuantity > 0) {
      return true;
    }
    return false;
  }, 'The available quantity must be greater than 0');

ProductSchema
  .path('price')
  .validate((price) => {
    if (price >= 0) {
      return true;
    }
    return false;
  }, 'The price cannot be a negative value');

module.exports = mongoose.model('Product', ProductSchema);

Ya hemos creado nuestro primer modelo ahora pasemos a crear el controlador con cada uno de los métodos que el modelo podrá ejecutar.

Last updated