querying messages data from database

This commit is contained in:
slawk0
2024-08-24 15:24:49 +02:00
parent ed934df684
commit 9cd9c7495a
2 changed files with 11 additions and 15 deletions

View File

@@ -19,7 +19,7 @@ db .connect()
async function isUserExists(username) {
try {
const query = 'SELECT COUNT(*) FROM accounts WHERE username = $1';
const result = await db .query(query, [username]);
const result = await db.query(query, [username]);
return result.rows[0].count > 0;
} catch (err) {
console.error('Error checking username:', err);

View File

@@ -41,35 +41,31 @@ function initializeSocket(server) {
socket.on('chat message', async (msg) => {
let result;
try {
const result = await db.query('INSERT INTO messages (content, username) VALUES ($1, $2) RETURNING id', [msg, username]);
const insertedId = result.rows[0].id;
console.log(result.rows[0])
await db.query('INSERT INTO messages (content, username) VALUES ($1, $2) RETURNING id', [msg, username]);
} catch (err) {
console.error('Error inserting message:', err);
return;
}
const message = username + ': ' + msg;
console.log(message);
io.emit('chat message', message);
if (!socket.recovered) {
// if the connection state recovery was not successful
if (!socket.recovered) { // if the connection state recovery was not successful
try {
const { rows } = await db.query(
'SELECT id, content FROM messages WHERE id > $1',
[socket.handshake.auth.serverOffset || 0]
);
const query = 'SELECT id, content, username FROM messages WHERE id > $1 ORDER BY id ASC';
const values = [socket.handshake.auth.serverOffset || 0];
rows.forEach(row => {
const result = await db.query(query, values);
for (const row of result.rows) {
socket.emit('chat message', row.content, row.id);
});
}
} catch (e) {
// something went wrong
console.error('Error during recovery:', e);
console.error('Error retrieving messages:', e);
}
}
});
// disconnect event