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

164
Vistas
Cómo verificar la actualización e insertar mientras se usa bulkCreate en node.js

Estoy usando node.js para cargar un archivo de Excel en la base de datos, en mi servicio estoy usando bulkCreate para cargar los datos en mysql db. Déjame publicar la estructura de la tabla

 table name : customer_details columns: customer_org_id INT, customer_name VARCHAR, customer_type char, active boolean, customer_slot VARCHAR, service_start_time DATE, service_end_time DATE

Tengo un requisito adicional, es decir, si bien cargaré Excel e intentaré insertarlo en la base de datos, debe verificar en la base de datos que customer_org_id &customer_name existe en la base de datos o no. Si la combinación existe, el registro existente se actualizará y la columna activa será falsa. Y se insertará una nueva fila con customer_org_id y customer_name y el activo se establecerá en verdadero. Puedo realizar operaciones individuales como crear, actualizar, eliminar, etc. pero no entiendo dónde poner estas operaciones juntas mientras se hace un bulkCreate. estoy publicando mi codigo

 const upload = async(req,res) => { try{ if(req.file == undefined){ return res.status(400).send("Please upload an excel file"); } let path= __basedir + "/resources/static/assets/uploads/" + req.file.filename; readXlsxFile(path).then((rows)=>{ rows.shift(); let custdetail = []; row.forEach((row)=>{ let custdetails ={ customer_org_id: row[0], customer_name :row[1], customer_type :row[2], active :row[3], customer_slot: row[4], }; custdetails.push(custdetail); }); CustomerDetails.bulkCreate(custdetails) .then(()=>{ res.status(200).send({ message: "Uploaded the file successfully :" + req.file.originalname, }); }) .catch((error) =>{ res.status(500).send({ message : "Fail to import data into DB", error : error.message, }); }); }); }catch(error){ console.log(error); res.status(500).send({ message : "Could not upload the file :" +req.file.originalname, }); } }

¿Alguien puede decirme cómo puedo hacer las operaciones antes de agregar datos a la base de datos? soy nuevo en nodo js

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si lo entendí correctamente, parece que bulkCreate no es la mejor solución para su problema, ya que deberá realizar una validación y crear/actualizar para cada línea de su matriz.

No entendí todos sus requisitos, pero el código sería algo parecido a esto:

 const upload = async (rows) => { const promises = rows.map(async (sindleRow) => { const costumer = await CustomerDetails.find({ where: { customer_org_id: row[0], customer_name: row[1] }}) if (customer !== undefined) { // CUSTOMER FOUND await CustomerDetails.update({ where: { id: customer.id }, data: { active: false }}) await CustomerDetails.create({ data: { customer_org_id: row[0], customer_name: row[1], active: false }}) } return; }); return await Promise.all(promises); }

Importante: Este código es solo un ejemplo.

Su escenario no parece beneficiarse del uso de un bulkCreate, porque los datos deben verificarse individualmente.

about 4 years ago · Juan Pablo Isaza Denunciar
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