Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

93
Vistas
Cómo crear (optimizar) el servicio en Backend (ExpressJS) con secuela

Intenté crear una API para la tienda de Internet usando ExpressJS y hacer una secuencia. Tengo usuarios, cesta y dispositivos. Para conectar la cesta y los dispositivos elegidos por el usuario, se utiliza la tabla intermedia BasketDevice.

Modelos:

 export const Models = {

 User: sequelize.define('user',
 {
 id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
 email: { type: DataTypes.STRING, unique: true },
 password: { type: DataTypes.STRING },
 role: { type: DataTypes.STRING, defaultValue: 'USER' },
 isActivated: { type: DataTypes.BOOLEAN, defaultValue: false},
 activationLink: { type: DataTypes.STRING, unique: true }
 }
 ),
 Basket: sequelize.define('basket',
 {
 id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
 }
 ),
 BasketDevice: sequelize.define('basketDevice',
 {
 id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true }, 
 }
 ),
 Device: sequelize.define('device',
 {
 id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
 name: { type: DataTypes.STRING, allowNull: false, unique: true },
 price: { type: DataTypes.INTEGER, allowNull: false },
 img: { type: DataTypes.STRING, allowNull: false },
 rating: { type: DataTypes.INTEGER, defaultValue: 0 },
 }
}

Asociaciones entre tablas:

 Models.User.hasOne(Models.Basket)
Models.Basket.belongsTo(Models.User)

Models.Basket.hasMany(Models.BasketDevice, {as: 'devices'})
Models.BasketDevice.belongsTo(Models.Basket)

Models.Device.hasMany(Models.BasketDevice)
Models.BasketDevice.belongsTo(Models.Device)

Intenté dar como respuesta la cesta incluye el dispositivo de la cesta

Servicio de canasta:

 class BasketService {
 async getBasket(token: string) {
 const userData = await TokenService.verifyRefreshToken(token) as any
 const basket = await Models.Basket.findOne({
 where: { userId: userData.id },
 include: [{model: Models.BasketDevice, as: 'devices'}]
 })

 return basket
 }
}

No sé cómo crear la función getBasket que agrega dispositivos al carrito y cuenta un dispositivo ¿Cuál es la forma óptima de agregar dispositivos al carrito?

almost 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda