Files
nxxmdata/bank-backend/test-simple-update.js
2025-09-24 17:49:32 +08:00

66 lines
2.0 KiB
JavaScript

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();