buzhidao
This commit is contained in:
@@ -5,7 +5,6 @@
|
||||
"express": "npm:express@^4.21.2",
|
||||
"socket.io": "npm:socket.io@^4.8.1",
|
||||
// Database
|
||||
"sequelize": "npm:sequelize@^6.37.7",
|
||||
"sqlite3": "npm:sqlite3@^5.1.7",
|
||||
// Front-end Compiling
|
||||
"@babel/core": "npm:@babel/core@^7.26.10",
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
// @ts-types="npm:sequelize"
|
||||
import { Sequelize } from 'sequelize'
|
||||
import Config from "../config.ts"
|
||||
import User from "./User.ts";
|
||||
|
||||
abstract class BaseDataManager {
|
||||
declare sequelize: Sequelize
|
||||
declare name: string
|
||||
constructor(name: string) {
|
||||
this.init(name)
|
||||
@@ -12,10 +9,7 @@ abstract class BaseDataManager {
|
||||
}
|
||||
private init(name: string) {
|
||||
this.name = name
|
||||
this.sequelize = new Sequelize({
|
||||
dialect: 'sqlite',
|
||||
storage: Config.dirs.DATABASES_DIR + '/' + name + '.db'
|
||||
})
|
||||
|
||||
}
|
||||
abstract onInit(): void
|
||||
}
|
||||
@@ -23,7 +17,7 @@ abstract class BaseDataManager {
|
||||
class UserDataManager extends BaseDataManager {
|
||||
static SINGLE_INSTANCE = new UserDataManager('users')
|
||||
override onInit(): void {
|
||||
User.initTable(this.sequelize, this.name)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,35 +1,3 @@
|
||||
// @ts-types="npm:sequelize"
|
||||
import { Sequelize, Model, DataTypes, CreationOptional } from 'sequelize'
|
||||
|
||||
export default class User extends Model {
|
||||
declare created_id: CreationOptional<number>
|
||||
declare user_name: string | null
|
||||
declare nick_name: string | null
|
||||
declare avatar: Blob
|
||||
|
||||
static async initTable(sequelize: Sequelize, name: string) {
|
||||
this.init({
|
||||
created_id: {
|
||||
type: DataTypes.INTEGER.UNSIGNED,
|
||||
autoIncrement: true,
|
||||
primaryKey: true,
|
||||
},
|
||||
user_name: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: true,
|
||||
},
|
||||
nick_name: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: true,
|
||||
},
|
||||
avatar: {
|
||||
type: DataTypes.BLOB,
|
||||
allowNull: true,
|
||||
},
|
||||
}, {
|
||||
sequelize: sequelize,
|
||||
tableName: name,
|
||||
})
|
||||
await this.sync({ alter: true })
|
||||
}
|
||||
export default class User {
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user