Files
all-in-one-sys/scripts/create-admin.js
KQL 61698639ef feat: 完成多多畅职就业服务平台核心功能开发
主要更新:
-  完成主题配色从暗色到亮蓝白配色的全面转换
-  实现高薪岗位页面及后端API集成
-  完成登录注册页面及认证系统
-  实现预招录确认功能
-  添加数据库管理和维护工具脚本
-  优化错误处理和用户体验

核心功能:
1. 首页 (index.html) - 3D地球、专业分类、过渡岗位
2. 高薪岗位页面 (high.html) - 岗位详情、预招录确认、成功案例
3. 登录注册 (auth.html) - 用户认证、专业分类选择
4. 后端API - RESTful接口,JWT认证,MySQL数据库

技术栈:
- 前端:Three.js, GSAP, 原生JavaScript
- 后端:Node.js, Express, MySQL
- 认证:JWT, bcrypt
- 样式:自定义CSS,响应式设计

数据库工具:
- kill-by-ids.js - 批量终止MySQL进程
- unlock-all-tables.js - 解锁数据库表
- init-db.js - 初始化数据库
- 其他管理脚本

🤖 Generated with Claude Code
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 15:40:55 +08:00

88 lines
3.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 创建默认管理员账号
* 在数据库和表已经创建后运行此脚本
*/
require('dotenv').config();
const mysql = require('mysql2/promise');
const bcrypt = require('bcryptjs');
// 数据库配置
const dbConfig = {
host: process.env.DB_HOST,
port: process.env.DB_PORT,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_DATABASE || 'ddcz_platform'
};
async function createAdminUser() {
let connection;
try {
console.log('🔌 正在连接到MySQL数据库...');
console.log(` 数据库: ${dbConfig.database}`);
connection = await mysql.createConnection(dbConfig);
console.log('✅ 数据库连接成功!\n');
// 生成管理员密码哈希
console.log('🔐 正在生成管理员密码...');
const defaultPassword = 'admin123456';
const passwordHash = await bcrypt.hash(defaultPassword, 10);
console.log('✅ 密码哈希生成成功!\n');
// 插入或更新管理员账号
console.log('👤 正在创建管理员账号...');
const [result] = await connection.query(`
INSERT INTO users (username, password_hash, email, role, status)
VALUES (?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
password_hash = VALUES(password_hash),
email = VALUES(email),
updated_at = CURRENT_TIMESTAMP
`, ['admin', passwordHash, 'admin@ddcz.com', 'admin', 'active']);
if (result.affectedRows > 0) {
console.log('✅ 管理员账号创建/更新成功!\n');
console.log('📝 管理员登录信息:');
console.log(' 用户名: admin');
console.log(' 密码: admin123456');
console.log(' ⚠️ 请在首次登录后立即修改密码!\n');
}
// 验证表是否存在
console.log('📊 验证数据库表...');
const [tables] = await connection.query('SHOW TABLES');
console.log(`✅ 数据库中共有 ${tables.length} 个表:`);
tables.forEach(table => {
const tableName = Object.values(table)[0];
console.log(` - ${tableName}`);
});
console.log('\n🎉 管理员账号设置完成!');
} catch (error) {
console.error('\n❌ 操作失败:');
console.error(error.message);
if (error.code === 'ECONNREFUSED') {
console.error('\n💡 无法连接到MySQL服务器');
} else if (error.code === 'ER_ACCESS_DENIED_ERROR') {
console.error('\n💡 用户名或密码错误');
} else if (error.code === 'ER_NO_SUCH_TABLE') {
console.error('\n💡 表不存在请先在Navicat中执行 database-setup.sql');
}
process.exit(1);
} finally {
if (connection) {
await connection.end();
console.log('🔌 数据库连接已关闭');
}
}
}
// 执行
createAdminUser();