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

108
Vistas
ExpressJS: Javascript no parece ejecutarse de arriba hacia abajo

Tengo este script que no parece agotarse. Lo noté en la parte de la reasignación de variables. Se muestra el fragmento de código y la salida

 //Create New Open Market under the game let latestRowId = 1; var sqlQuery2 = "SELECT ID FROM markets ORDER BY LAST_EDITED DESC LIMIT 1"; db.query(sqlQuery2, [], function(err, result4) { if (err){ console.log("Error during /openBetoBetoMarket. Proc_4" + err); res.status(500).json({ msg: "Server Error /openBetoBetoMarket. gameID:" + gameID }); } else { console.log("result4", result4[0].ID) latestRowId = result4[0].ID } }); console.log("latest_row_id", latestRowId); newRowID = latestRowId + 1 newMarketId = result[0].MARKET_ID + 1 newGameId = gameID newDescription = gameTitle console.log("New row id", newRowID, "new market id", newMarketId) sqlQuery = "INSERT INTO markets (ID, MARKET_ID, GAME_ID, DESCRIPTION, LAST_EDITED, WRITER) VALUES (?, ?, ?, ?, NOW(), CURRENT_USER);" db.query(sqlQuery, [newRowID, newMarketId, newGameId, newDescription], (err, result4) => { if (err){ console.log("Error during /openBetoBetoMarket. Proc_5 " + err); res.status(500).json({ msg: "Server Error /openBetoBetoMarket. gameID:" + gameID }); } else if (result4.affectedRows > 0){ console.log("Created new open market for /openBetoBetoMarket. MarketID: " + newMarketId); res.status(200).json({msg: "Created New Open Market", marketID: newMarketId, isOpen: 1}) } else { console.log("Error during /openBetoBetoMarket. Proc_5. Inserted but no affected Rows"); res.status(500).json({ msg: "Server Error /openBetoBetoMarket. gameID:" + gameID }); } })

La salida se muestra a continuación:

última_fila_id 1
ID de fila nueva 2 ID de mercado nuevo 3
resultado4 2
Error durante /openBetoBetoMarket. Error de Proc_5: ER_DUP_ENTRY: Entrada duplicada '2' para la clave 'markets.PRIMARY'

Como puede ver, parece omitir la primera db.query y va directamente a la siguiente asignación de variables y luego ejecuta la primera db.query. ¿Alguna idea de lo que me estoy perdiendo aquí? Primera vez publicando aquí. Gracias

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

0

La forma en que está definiendo (o simplemente no está definiendo en absoluto) sus variables lo está metiendo en problemas.

En primer lugar, deshazte de la palabra clave var . No hay absolutamente ninguna razón para usarlo. var define variables en el ámbito global y permite reasignarlas. Realmente nunca debe usar variables globales, excepto para los scripts más pequeños que nunca se modificarán significativamente. Hay muy pocos casos en los que realmente querrá que se reasigne una variable, pero si lo hace, use la palabra clave let porque entonces al menos tiene un alcance de nivel de bloque.

En segundo lugar, a mitad de camino tiene cuatro variables definidas incorrectamente sin ninguna palabra clave. No es la sintaxis adecuada de JavaScript definir una variable de la siguiente manera:

 // wrong! this is correct in Python but not JS varName = <value>;

Necesita usar uno de let , const o var . Se recomienda const .

Vuelva a escribir su código para usar la definición de variable adecuada y vea si puede escribir su código de una manera que no reasigne variables para obtener puntos de bonificación. Entonces debería encontrar que su código no produce resultados inesperados.

La mejor de las suertes

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