41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
const bcrypt = require('bcrypt');
|
|
const mysql = require('mysql2/promise');
|
|
const readline = require('readline').createInterface({
|
|
input: process.stdin,
|
|
output: process.stdout,
|
|
});
|
|
require('dotenv').config({ path: '../.env' });
|
|
|
|
const dbConfig = {
|
|
host: process.env.DB_HOST,
|
|
user: process.env.DB_USER,
|
|
password: process.env.DB_PASSWORD,
|
|
database: process.env.DB_NAME,
|
|
};
|
|
|
|
async function addUser() {
|
|
const username = await askQuestion('Enter username: ');
|
|
const password = await askQuestion('Enter password: ');
|
|
|
|
const hashedPassword = await bcrypt.hash(password, 10);
|
|
|
|
const connection = await mysql.createConnection(dbConfig);
|
|
|
|
try {
|
|
await connection.query('INSERT INTO users (username, password) VALUES (?, ?)', [username, hashedPassword]);
|
|
console.log(`User ${username} added successfully.`);
|
|
} catch (error) {
|
|
console.error('Error adding user:', error);
|
|
} finally {
|
|
connection.end();
|
|
readline.close();
|
|
}
|
|
}
|
|
|
|
function askQuestion(query) {
|
|
return new Promise(resolve => readline.question(query, ans => {
|
|
resolve(ans);
|
|
}));
|
|
}
|
|
|
|
addUser();
|