Antes de publicar esta pregunta, revisé un par de publicaciones SO con el mismo encabezado. Todos ellos me sugirieron que reinicie mi aplicación... Lo intenté pero sigo recibiendo el error.
El código que arroja el error es
app.post('/insert', function(request, response) { var connection = mySequel.createConnection(ConnectionParams); connection.connect(); var UserName = request.body.UserName; // insert into userrecords values ("123456",DEFAULT,DEFAULT,DEFAULT,10); var InsertQuery = "insert into userrecords values (" + UserName + ",DEFAULT,DEFAULT,DEFAULT,-10);"; connection.query(InsertQuery, function(error, result, fields) { if (error) { response.send("error"); console.log(error); throw error; } else { // response.send("success"); console.log(result.insertId); response.send(result.insertId); } }); connection.end(); });El error causado por el código es este
events.js:160 2017-04-26T11:42:52.410094+00:00 app[web.1]: 2017-04-26T11:42:52.410092+00:00 app[web.1]: throw er; // Unhandled 'error' event 2017-04-26T11:42:52.410096+00:00 app[web.1]: Error: Quit inactivity timeout 2017-04-26T11:42:52.410097+00:00 app[web.1]: at Quit.<anonymous> (/app/node_modules/mysql/lib/protocol/Protocol.js:160:17) 2017-04-26T11:42:52.410093+00:00 app[web.1]: ^ 2017-04-26T11:42:52.410098+00:00 app[web.1]: at emitNone (events.js:86:13) 2017-04-26T11:42:52.410099+00:00 app[web.1]: at Quit._onTimeout (/app/node_modules/mysql/lib/protocol/sequences/Sequence.js:127:8) 2017-04-26T11:42:52.410099+00:00 app[web.1]: at Quit.emit (events.js:185:7) 2017-04-26T11:42:52.410100+00:00 app[web.1]: at ontimeout (timers.js:380:14) 2017-04-26T11:42:52.410101+00:00 app[web.1]: at tryOnTimeout (timers.js:244:5) 2017-04-26T11:42:52.410102+00:00 app[web.1]: at Timer.listOnTimeout (timers.js:214:5)Estoy alojando mi aplicación en Heroku y cada vez que intento acceder a esta URL, la aplicación falla y me obliga a reiniciar el banco de pruebas. Los datos que estoy enviando se insertan correctamente en la base de datos, pero la clave principal incrementada automáticamente no se devuelve a mi aplicación. En su lugar me sale un error del servidor.
JSON.stringify() devuelve el valor correcto una vez y luego la aplicación se bloqueó, lo que provocó que fallaran las solicitudes posteriores.
¿Como puedó resolver esté problema?
Intente convertir su respuesta en JSON antes de enviarla.
Me gusta
response.send(JSON.stringify(result.insertId));
Yo también tuve una vez un problema similar y creo que así lo resolví.
EDITAR:
Revisé la biblioteca myql npm y encontré algo llamado Pool . El grupo se usa cuando su aplicación necesita manejar más de una solicitud a la vez. Te sugiero que pruebes eso. Hay un buen ejemplo disponible aquí.
Tengo el mismo problema, acabo de cambiar a react-scripts@2.1.8
estos son los pasos:
cd my-appnpm install react-scripts@2.1.8npm start