const { User } = require('./models'); const bcrypt = require('bcryptjs'); async function testSimpleUpdate() { try { console.log('=== 简单测试数据库更新 ===\n'); // 1. 生成密码哈希 const testPassword = 'Admin123456'; const newHash = await bcrypt.hash(testPassword, 10); console.log('1. 生成的哈希:', newHash); console.log('哈希长度:', newHash.length); console.log(''); // 2. 验证生成的哈希 const isValid = await bcrypt.compare(testPassword, newHash); console.log('2. 生成的哈希验证结果:', isValid); console.log(''); // 3. 直接使用SQL更新 console.log('3. 直接使用SQL更新...'); const { sequelize } = require('./config/database'); const [affectedRows] = await sequelize.query( 'UPDATE users SET password = ? WHERE username = ?', { replacements: [newHash, 'admin'], type: sequelize.QueryTypes.UPDATE } ); console.log('SQL更新影响行数:', affectedRows); console.log(''); // 4. 重新查询 console.log('4. 重新查询数据库...'); const user = await User.findOne({ where: { username: 'admin' } }); if (user) { console.log('查询到的密码哈希:', user.password); console.log('查询到的哈希长度:', user.password.length); console.log('哈希是否匹配:', user.password === newHash); console.log(''); // 5. 测试验证 const queryTest = await bcrypt.compare(testPassword, user.password); console.log('5. 查询到的哈希验证结果:', queryTest); if (queryTest) { console.log('🎉 数据库更新成功!'); } else { console.log('❌ 数据库更新失败,哈希不匹配'); } } else { console.log('❌ 重新查询用户失败'); } } catch (error) { console.error('测试失败:', error.message); console.error('错误堆栈:', error.stack); } process.exit(0); } testSimpleUpdate();