更改数据库为sqlite
This commit is contained in:
parent
4cf2b8e1de
commit
b97225d52d
25
app.js
25
app.js
@ -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 }));
|
||||
|
||||
0
controllers/user.controller.js
Normal file
0
controllers/user.controller.js
Normal file
189
dao/userMapper.js
Normal file
189
dao/userMapper.js
Normal 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;
|
||||
}
|
||||
27
db/create-table-template.sql
Normal file
27
db/create-table-template.sql
Normal 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
13
db/sqlite.config.js
Normal 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
BIN
express.db
Normal file
Binary file not shown.
109
models/user.model.js
Normal file
109
models/user.model.js
Normal 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
1366
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -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
0
service/userService.js
Normal file
Loading…
Reference in New Issue
Block a user