重构后端服务架构并优化前端错误处理

This commit is contained in:
ylweng
2025-09-05 01:18:40 +08:00
parent 86322c6f50
commit 5853953f79
20 changed files with 608 additions and 772 deletions

View File

@@ -1,55 +1,58 @@
const { Sequelize } = require('sequelize');
// 数据库配置文件
require('dotenv').config();
// 数据库连接配置
const sequelize = new Sequelize({
host: process.env.DB_HOST || '129.211.213.226',
port: process.env.DB_PORT || 9527,
database: process.env.DB_NAME || 'jiebandata',
username: process.env.DB_USER || 'root',
password: process.env.DB_PASSWORD || 'aiotAiot123!',
dialect: process.env.DB_DIALECT || 'mysql',
logging: process.env.NODE_ENV === 'development' ? console.log : false,
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
},
define: {
timestamps: true,
underscored: true,
freezeTableName: true
},
timezone: '+08:00'
});
// 测试数据库连接
const testConnection = async () => {
try {
await sequelize.authenticate();
console.log('✅ 数据库连接成功');
return true;
} catch (error) {
console.error('❌ 数据库连接失败:', error.message);
return false;
}
};
// 同步数据库模型
const syncDatabase = async (options = {}) => {
try {
await sequelize.sync(options);
console.log('✅ 数据库同步成功');
} catch (error) {
console.error('❌ 数据库同步失败:', error);
throw error;
}
};
module.exports = {
sequelize,
testConnection,
syncDatabase,
Sequelize
development: {
username: process.env.DB_USERNAME || 'root',
password: process.env.DB_PASSWORD || 'aiotAiot123!',
database: process.env.DB_NAME || 'jiebandata',
host: process.env.DB_HOST || '129.211.213.226',
port: process.env.DB_PORT || 9527,
dialect: 'mysql',
dialectOptions: {
charset: 'utf8mb4',
dateStrings: true,
typeCast: true
},
timezone: '+08:00',
logging: console.log,
pool: {
max: 20,
min: 0,
acquire: 60000,
idle: 10000
}
},
test: {
username: process.env.TEST_DB_USERNAME || 'root',
password: process.env.TEST_DB_PASSWORD || 'aiotAiot123!',
database: process.env.TEST_DB_NAME || 'jiebandata_test',
host: process.env.TEST_DB_HOST || '129.211.213.226',
port: process.env.TEST_DB_PORT || 9527,
dialect: 'mysql',
dialectOptions: {
charset: 'utf8mb4'
},
timezone: '+08:00',
logging: false
},
production: {
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
host: process.env.DB_HOST,
port: process.env.DB_PORT,
dialect: 'mysql',
dialectOptions: {
charset: 'utf8mb4'
},
timezone: '+08:00',
logging: false,
pool: {
max: 50,
min: 5,
acquire: 60000,
idle: 10000
}
}
};