重构后端服务架构并优化前端错误处理
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user