更改数据库为sqlite

This commit is contained in:
rsgltzyd 2024-06-30 17:45:15 +08:00
parent 4cf2b8e1de
commit b97225d52d
10 changed files with 1723 additions and 9 deletions

25
app.js
View File

@ -5,22 +5,33 @@ const logger = require('morgan');
const cors = require('cors');
const session = require('express-session');
const cookieParser = require('cookie-parser');
const indexRouter = require('./routes/index');
const mongodbConfig = require('./db/mongodb.config');
// mongodb数据库连接
// const mongodbConfig = require('./db/mongodb.config');
// sqlite3数据库连接
const sqliteConfig = require('./db/sqlite.config');
const loginUtils = require("./utils/LoginUtil");
const app = express();
// 导入env
require("dotenv").config();
const dbAccount = process.env.DB_ACCOUNT;
const dbPassword = process.env.DB_PASSWORD;
const loginSecret = process.env.SESSION_SECRET;
console.log(dbAccount, dbPassword);
mongodbConfig.connectMongoDB(dbAccount, dbPassword);
app.use(cors({ origin: 'http://localhost:5173', credentials: true }));
// const databaseAccount = process.env.DB_ACCOUNT;
// const databasePassword = process.env.DB_PASSWORD;
// mongodbConfig.connectMongoDB(databaseAccount, databasePassword);
const db = sqliteConfig.connectSqlite();
const userMapper = require("./dao/userMapper");
const User = require('./models/user.model');
console.log(userMapper.selectAllUser());
// app.use(cors({ origin: 'http://localhost:5173', credentials: true }));
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));

View File

189
dao/userMapper.js Normal file
View File

@ -0,0 +1,189 @@
const sqlite = require('../db/sqlite.config');
const User = require("../models/user.model");
/**
*
* @param {*} id
* @returns
*/
exports.selectById = async (id) => {
let db;
try {
db = await sqlite.connectSqlite();
db.all('SELECT * FROM USERS WHERE `id` = ?', [id], async function (err, rows) {
if (err) {
console.error(err);
}
return await getUser(rows);
});
const rows = await new Promise((resolve, reject) => {
db.all('SELECT * FROM USERS WHERE `id` = ?', [id], (err, rows) => {
if (err) {
reject(err);
} else {
resolve(rows);
}
});
});
return await getUser(rows);
} catch (err) {
throw err;
} finally {
try {
await db.close();
} catch (error) {
throw err;
}
}
};
/**
*
* @param {*} name
* @returns
*/
exports.selectByName = async (name) => {
let db;
try {
db = await sqlite.connectSqlite();
const rows = await new Promise((resolve, reject) => {
db.all('SELECT * FROM USERS', async function (err, rows) {
if (err) {
reject(err);
}
resolve(rows);
});
})
return await getUser(rows);
} catch (err) {
throw err;
} finally {
try {
await db.close();
} catch (error) {
console.error(error);
}
}
}
exports.selectAllUser = async () => {
let db;
try {
db = await sqlite.connectSqlite();
const rows = await new Promise((reject, resolve) => {
db.all('SELECT * FROM USERS', async function (err, rows) {
if (err) {
reject(err);
}
resolve(rows)
});
})
return await getUser(rows);
} catch (err) {
throw err;
} finally {
try {
await db.close();
} catch (error) {
console.error(error);
}
}
}
/**
*
* @param {*} User
*/
exports.insertUser = async (User) => {
let db;
try {
db = await sqlite.connectSqlite();
const user = await new Promise((resolve, reject) => {
db.run('INSERT \
INTO USERS(USER_ACCOUNT, USER_NAME, PASSWORD, EMAIL, MOBILE) \
VALUES(?, ?, ?, ?, ?)',
[User.user_account, User.user_name, User.password, User.email, User.mobile],
async function (err) {
if (err) {
reject(err);
}
console.log(this + '-----');
resolve(this);
});
});
} catch (error) {
throw error
} finally {
try {
await db.close();
} catch (error) {
console.error(error);
}
}
}
/**
* @param password
* @param userId
*/
exports.updatePassword = async (password, userId) => {
let db;
try {
db = await sqlite.connectSqlite();
const thisUpdate = await new Promise((resolve, reject) => {
db.run(
"UPDATE USERS SET PASSWORD = ? WHERE ID = ?;",
[password, userId],
async function (err) {
if (err) {
reject(err);
}
resolve(this);
}
)
})
} catch (error) {
throw error;
} finally {
try {
await db.close();
} catch (error) {
throw error;
}
}
}
/**
*
* @param rows
*/
getUser = async (rows) => {
let users = new Array();
rows.map((value, index) => {
users[index] = new User(
value.id,
value.user_account,
value.user_name,
value.password,
value.email,
value.mobile,
value.status,
value.create_time,
value.update_time);
});
return users;
}

View File

@ -0,0 +1,27 @@
-- 创建用户信息表
CREATE TABLE users (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`user_account` VARCHAR(255) UNIQUE NOT NULL,
`user_name` VARCHAR(255) NOT NULL,
`password` VARCHAR(255) NOT NULL,
`email` VARCHAR(255),
`mobile` VARCHAR(255),
`status` VARCHAR(100) DEFAULT 'NORMAL',
`create_time` TIMESTAMP DEFAULT (datetime('now', 'localtime')),
`update_time` TIMESTAMP DEFAULT (datetime('now', 'localtime'))
);
DELETE FROM USERS
-- Active: 1719656873604@@127.0.0.1@3306
INSERT
INTO users (user_account, user_name, `password`, email)
VALUES
('test2', '1', '123456', '2712495353@qq.com');
INSERT
INTO users (user_account, user_name, `password`, email)
VALUES
('test4', '1', '123456', '2712495354@qq.com');
SELECT * FROM `USERS`

13
db/sqlite.config.js Normal file
View File

@ -0,0 +1,13 @@
const sqlite3 = require("sqlite3").verbose();
exports.connectSqlite = function () {
return db = new sqlite3.Database(
"./express.db",
sqlite3.OPEN_READWRITE,
function (err) {
if (err) {
return console.log(err);
}
}
);
}

BIN
express.db Normal file

Binary file not shown.

109
models/user.model.js Normal file
View File

@ -0,0 +1,109 @@
class User {
id;
user_account;
user_name;
password;
email;
mobile;
status;
create_time;
update_time;
constructor(id, user_account, user_name, password, email, mobile, status, create_time, update_time) {
this.id = id;
this.user_account = user_account;
this.user_name = user_name;
this.password = password;
this.email = email;
this.mobile = mobile;
this.status = status;
this.create_time = create_time;
this.update_time = update_time;
}
getId() {
return this._id;
}
setId(id) {
this._id = id;
}
getUserAccount() {
return this.user_account;
}
setUserAccount(value) {
this.user_account = value;
}
getUserName() {
return this.user_name;
}
setUserName(user_name) {
this.user_name = user_name;
}
getPassword() {
return this.password;
}
setPassword(password) {
this.password = password;
}
getEmail() {
return this.email;
}
setEmail(email) {
this.email = email;
}
getMobile() {
return this.mobile;
}
setMobile(mobile) {
this.mobile = mobile;
}
getStatus() {
return this.status;
}
setStatus(status) {
this.status = status;
}
getCreateTime() {
return this.create_time;
}
setCreateTime(create_time) {
this.create_time = create_time;
}
getUpdateTime() {
return this.update_time;
}
setUpdateTime(update_time) {
this.update_time = update_time;
}
toString() {
return '\n' + this.id + '\n'
+ this.user_name + '\n'
+ this.user_account + '\n'
+ this.password + '\n'
+ this.email + '\n'
+ this.mobile + '\n'
+ this.status + '\n'
+ this.create_time + '\n'
+ this.update_time;
}
}
module.exports = User;

1366
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -19,6 +19,7 @@
"jade": "^0.29.0",
"mongoose": "^8.3.4",
"morgan": "~1.9.1",
"nodemon": "^3.1.0"
"nodemon": "^3.1.0",
"sqlite3": "^5.1.7"
}
}

0
service/userService.js Normal file
View File