Workshop Fullstack Javascript
  • Bienvenid@s 👨🏼‍💻👩🏻‍💻
  • Prerequisitos 💻🔧
  • Backend
    • Introducción
      • Configuración Inicial
    • Node.js
    • Express.js
      • Configuración
      • Carpeta API
      • Rutas
    • Mongoose.js
      • Conectando a Mongosse
      • Esquemas y Modelos
      • Métodos
      • Rutas
      • Retos 🕵🏻‍♀️ 💻 🕵🏻‍♂️
    • Passport.js
      • Modelo User
      • Estrategia Local
      • Autenticación Service
      • API users
      • Configuración Passport.js
      • Middleware
      • Retos 🦸🏻‍♀️🕵🏼‍♂️
    • Refactor
    • Despliegue 🚀
  • Frontend
    • ReactJS 💙
      • Configuración Inicial
      • Componentes
      • Pages
      • Rutas
      • Conectando la API
      • Authenticación
      • Despliegue 🚀
    • VueJS 💚
      • Configuración Inicial
  • GraphQL
    • pronto...🤷🏼‍♂️
Powered by GitBook
On this page

Was this helpful?

  1. Backend
  2. Mongoose.js

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.

product.model.js
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.

PreviousConectando a MongosseNextMétodos

Last updated 5 years ago

Was this helpful?