Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

195
Visualizações
Backend en inserciones duplicadas de heroku/frontend en solicitud de duplicado de heroku (no lo sé)

Tengo una aplicación en heroku, separada por atrás y por delante.
atrás: node + express + mysql
frente: vue
la aplicación funciona bien, pero tengo un error aleatorio: a veces tengo registros duplicados insertados desde la interfaz. (Supongo que el error viene del frente)
desde la interfaz utilizo fetch para agregar los registros

 const requestOptions = { method: "POST", headers: { "Accept": "application/json", "Content-Type": "application/json" }, body: JSON.stringify({ data: data, ...: ..., }), }; const response = await fetch(`url_backend_heroku/api/add`, requestOptions);

los registros se insertan correctamente, pero a veces se insertan duplicados con la siguiente identificación correcta

¿Podría ser que fetch esté enviando 2 solicitudes en algunos casos?
antes de implementar en heroku en mi máquina local, nunca duplico registros
Llevo dias dando vueltas y no encuentro por que pasa esto

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Sí, es posible que estés enviando 2 solicitudes a alguna parte. Ponga registros en heroku ATRÁS en el punto final específico para ver qué está sucediendo exactamente. Además, mientras realiza la solicitud desde el front-end, verifique la pestaña de su red en las herramientas de desarrollador para ver si realmente está activando la solicitud dos veces. Porque como dijiste registros duplicados pero tienen identificaciones correctas, solo podría significar lo que dijiste.

Además, esto puede ser cierto o no, pero el servidor de heroku duerme por inactividad, por lo que es posible que cause un problema, pero no estoy completamente seguro de eso, tendré que verificar el código y el entorno para eso.

about 4 years ago · Juan Pablo Isaza Relatório

0

mirando el registro de heroku (atrás) parece que se insertaron 2 registros normalmente
mirando la pestaña de red en el navegador, solo aparece 1 solicitud: OPCIONES (204) y POST (200)
la tabla tiene un id que es la llave primaria nada complicado
por otro lado estoy en un plan Dynos Hobby que no tiene tiempos de sueño (si es gratis)

poner aquí parte o mi backend

base de datos.js

 const mysql = require('mysql') const { promisify } = require('util') const config = { database keys } const pool = mysql.createPool(config); pool.getConnection((err: any, connection: any) => { if (err) { if (err.code === 'PROTOCOL_CONNECTION_LOST') { console.error('DATABASE CONNECTION WAS CLOSED') } if (err.code === 'ER_CON_COUNT_ERROR') { console.error('DATABASE HAS TO MANY CONNECTIONS') } if (err.code === 'ECONNREFUSED') { console.error('DATABASE CONNECTION WAS REFUSED') } } if (connection) connection.release() console.log('DB is Connected') return }) pool.query = promisify(pool.query) export default pool

controlador.js

 import pool from '../database'; public async insert(req: Request, res: Response) { let body = req.body try { const response = await pool.query('SELECT MAX(id) + 1 as idNew FROM table') let data = {Id: response[0].idNew, ...body} //before it had an auto_increment id and it also failed const result = await pool.query('INSERT INTO table set ?', [data]) res.json({ insertId: response[0].idNew, message: "Saved OK" }) } catch (error) { console.log("error", error) return res.status(500).send("error") } }

¿Puede ser un problema de recuperación? no intentes usar axios por ejemplo

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda