新增教师资料更新功能,包括个人信息修改和密码更新 添加操作日志记录系统,记录用户关键操作 实现系统设置模块,支持动态配置系统参数 重构数据库模型,新增教师表和系统设置表 优化成绩录入逻辑,支持平时分、期中和期末成绩计算 添加数据导出功能,支持学生、教师和成绩数据导出 完善管理员后台,增加统计图表和操作日志查看
71 lines
2.1 KiB
JavaScript
71 lines
2.1 KiB
JavaScript
const sqlite3 = require('sqlite3').verbose();
|
|
const path = require('path');
|
|
const fs = require('fs');
|
|
|
|
const dbPath = path.resolve(__dirname, '../database.sqlite');
|
|
const db = new sqlite3.Database(dbPath);
|
|
|
|
// Promisify query method
|
|
const query = (sql, params = []) => {
|
|
return new Promise((resolve, reject) => {
|
|
// Handle SELECT vs INSERT/UPDATE/DELETE
|
|
const trimmedSql = sql.trim().toUpperCase();
|
|
if (trimmedSql.startsWith('SELECT') || trimmedSql.startsWith('PRAGMA')) {
|
|
db.all(sql, params, (err, rows) => {
|
|
if (err) {
|
|
console.error('Database query error:', err);
|
|
reject(err);
|
|
} else {
|
|
resolve(rows);
|
|
}
|
|
});
|
|
} else {
|
|
db.run(sql, params, function(err) {
|
|
if (err) {
|
|
console.error('Database execution error:', err);
|
|
reject(err);
|
|
} else {
|
|
// Normalize result to look like MySQL result
|
|
// this.lastID, this.changes
|
|
resolve({
|
|
insertId: this.lastID,
|
|
affectedRows: this.changes,
|
|
warningStatus: 0
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
};
|
|
|
|
// Mock Pool object for compatibility
|
|
const pool = {
|
|
query: query,
|
|
execute: (sql, params) => query(sql, params).then(res => [res]), // Wrap in array for mysql2 compatibility
|
|
getConnection: () => Promise.resolve({
|
|
release: () => {},
|
|
query: query,
|
|
execute: (sql, params) => query(sql, params).then(res => [res]),
|
|
beginTransaction: () => query('BEGIN TRANSACTION'),
|
|
commit: () => query('COMMIT'),
|
|
rollback: () => query('ROLLBACK')
|
|
})
|
|
};
|
|
|
|
const testConnection = async () => {
|
|
try {
|
|
await query('SELECT 1');
|
|
console.log('SQLite 数据库连接成功');
|
|
return true;
|
|
} catch (error) {
|
|
console.error('SQLite 数据库连接失败:', error.message);
|
|
return false;
|
|
}
|
|
};
|
|
|
|
module.exports = {
|
|
pool,
|
|
query,
|
|
testConnection
|
|
};
|