I’m new to node js, I built a server that uses mysql for the database, and after a few hours of running the server, an error appears and a crash occurs. I wanted to see if anyone could see something in my code.
const mysql = require("mysql");
const express = require('express');
const http = require('node:http');
const bodyparser = require('body-parser');
const Connection = require("mysql/lib/Connection");
// fastify
const con = mysql.createPool({
connectionLimit : 100,
host: 'localhost',
user: 'root',
password: 'password',
database: 'pepco'
});
var app = express();
var cnt = 0;
const hostname = '192.168.100.23';
const port = 80;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello, World!n');
});
app.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
app.use(express.static("/Source/Test/"));
var urlparser = bodyparser.urlencoded({ extended: false })
let date = new Date();
let formattedDate = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()} ${date.getUTCHours() + 4}:${(date.getUTCMinutes() + 30) % 60}:${date.getUTCSeconds()}`;
console.log(formattedDate);
con.getConnection(function (err,connection) {
if (err)
{
connection.release();
return
}
console.log("Connected!");
});
app.post('/Submitted', urlparser, (req, res) => {
res.sendFile("/Source/Test/Submitted/OK.html");
console.log(req.body.subjectInput)
console.log(req.body.taskInput)
var sql = `SELECT COUNT(*) FROM Persons;`;
console.log(sql);
con.query(sql, function (err, result) {
if(!err)
{
cnt = JSON.stringify(result[0]).replace("{"COUNT(*)":","").replace("}","");
console.log(cnt);
}
if(cnt == "0" )
{
sql = `INSERT INTO Persons VALUES (${0},'${req.body.subjectInput}','${req.body.taskInput}','${formattedDate}')`;
console.log(sql);
con.query(sql, function (err, result) {
if (err) throw err;
console.log("insert");
});
}
else{
sql = `select *from Persons ORDER BY id DESC LIMIT 1`;
con.query(sql, function (err, result) {
if (err) throw err;
let id = result[0].ID + 1;
sql = `INSERT INTO Persons VALUES (${id},'${req.body.subjectInput}','${req.body.taskInput}','${formattedDate}')`;
console.log(sql);
con.query(sql, function (err, result) {
if (err) throw err;
console.log("insert");
});
});
}
});
});
app.get("/", (req, res) => {
res.sendFile("/Source/Test/Index.html");
});
app.get('/Admin/login', (req, res) => {
res.sendFile("/Source/Test/Admin/login/login.html");
console.log("req");
});
app.post('/Admin/update', urlparser, (req, res) => {
let arr = [] ;
console.log("update!");
var sql = `SELECT * FROM pepco.Persons;`;
con.query(sql, function (err, result) {
if (err) throw err;
arr = result;
console.log(arr);
res.send(arr);
});
});
node:events:497
throw er; // Unhandled ‘error’ event
^
Error: Packets out of order. Got: 0 Expected: 3
at Parser._tryReadPacketHeader (C:SourceTestnode_modulesmysqllibprotocolParser.js:470:15)
at Parser.write (C:SourceTestnode_modulesmysqllibprotocolParser.js:33:29)
at Protocol.write (C:SourceTestnode_modulesmysqllibprotocolProtocol.js:38:16)
at Socket. (C:SourceTestnode_modulesmysqllibConnection.js:88:28)
at Socket. (C:SourceTestnode_modulesmysqllibConnection.js:526:10)
at Socket.emit (node:events:519:28)
at addChunk (node:internal/streams/readable:559:12)
at readableAddChunkPushByteMode (node:internal/streams/readable:510:3) at Readable.push (node:internal/streams/readable:390:5)
at TCP.onStreamRead (node:internal/stream_base_commons:191:23)
Emitted ‘error’ event on Connection instance at:
at Connection._handleProtocolError (C:SourceTestnode_modulesmysqllibConnection.js:423:8)
at Protocol.emit (node:events:519:28)
at Protocol._delegateError (C:SourceTestnode_modulesmysqllibprotocolProtocol.js:398:10)
at Protocol.handleParserError (C:SourceTestnode_modulesmysqllibprotocolProtocol.js:380:10)
at Parser._tryReadPacketHeader (C:SourceTestnode_modulesmysqllibprotocolParser.js:478:10)
at Parser.write (C:SourceTestnode_modulesmysqllibprotocolParser.js:33:29)
[… lines matching original stack trace …]
at Socket.emit (node:events:519:28) {
code: ‘PROTOCOL_PACKETS_OUT_OF_ORDER’,
fatal: true
}
i want to fix this error
Ehsan Ahadi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.