55 lines
1.4 KiB
JavaScript
55 lines
1.4 KiB
JavaScript
const {Client} = require('pg');
|
|
require('dotenv').config();
|
|
|
|
const db = new Client({
|
|
user: process.env.PG_USER,
|
|
password: process.env.PG_PASSWORD,
|
|
database: process.env.PG_DATABASE,
|
|
host: process.env.PG_HOST,
|
|
port: process.env.PG_PORT
|
|
});
|
|
|
|
// create connection to database
|
|
db.connect()
|
|
.then(() => console.log('Successfully connected to database'))
|
|
.catch((err) => console.log('Error on connecting to database: ', err));
|
|
|
|
|
|
// function for checking if user exists
|
|
async function isUserExists(username) {
|
|
try {
|
|
const query = 'SELECT COUNT(*) FROM accounts WHERE username = $1';
|
|
const result = await db.query(query, [username]);
|
|
return result.rows[0].count > 0;
|
|
} catch (err) {
|
|
console.error('Error checking username:', err);
|
|
throw err;
|
|
}
|
|
}
|
|
|
|
// function for signup
|
|
// function for putting user data to database
|
|
async function insertUser(username, password){
|
|
const query = `
|
|
INSERT INTO accounts (username, password)
|
|
VALUES ($1, $2)
|
|
RETURNING *;
|
|
`;
|
|
const values = [username, password];
|
|
|
|
try {
|
|
const signupData = await db .query(query, values);
|
|
console.log('Account created:', signupData.rows[0].username);
|
|
} catch (err) {
|
|
console.error('Error inserting data:', err.stack);
|
|
throw err;
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
db ,
|
|
insertUser,
|
|
isUserExists,
|
|
};
|
|
|