Files
jiebanke/add_test_admin.js

61 lines
1.8 KiB
JavaScript
Raw Normal View History

const bcrypt = require('bcryptjs');
const { query } = require('./backend/src/config/database');
// 数据库配置
const dbConfig = {
host: '129.211.213.226',
port: 9527,
user: 'root',
password: 'aiotAiot123!',
database: 'jiebandata'
};
async function addTestAdmin() {
try {
// 加密密码
const saltRounds = 10;
const plainPassword = 'admin123';
const hashedPassword = await bcrypt.hash(plainPassword, saltRounds);
console.log('加密后的密码:', hashedPassword);
// 插入测试管理员账户
const insertSQL = `
INSERT INTO admins (username, password, email, nickname, role)
VALUES (?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
password = VALUES(password),
email = VALUES(email),
nickname = VALUES(nickname),
role = VALUES(role)
`;
const params = [
'testadmin',
hashedPassword,
'testadmin@example.com',
'测试管理员',
'admin'
];
// 注意这里我们需要直接使用mysql2连接数据库因为backend/src/config/database可能依赖环境变量
const mysql = require('mysql2/promise');
const connection = await mysql.createConnection(dbConfig);
const [result] = await connection.execute(insertSQL, params);
console.log('✅ 测试管理员账户创建/更新成功');
console.log('受影响的行数:', result.affectedRows);
// 验证插入的数据
const [rows] = await connection.execute('SELECT * FROM admins WHERE username = ?', ['testadmin']);
console.log('\n插入的管理员信息:');
console.log(rows[0]);
await connection.end();
} catch (error) {
console.error('❌ 创建测试管理员账户失败:', error.message);
console.error(error.stack);
}
}
addTestAdmin();