expressServer/dao/user.mapper.js
LingandRX cfe9f92013 feat: 重构项目并添加 MongoDB 支持
- 新增 Prettier 配置文件,规范代码格式
- 重构用户控制器和 DAO 层代码,提高可读性和维护性
- 添加 MongoDB 数据库配置和连接逻辑
- 更新用户模型,使用 Mongoose Schema 定义
- 新增密码加密功能
- 删除 SQLite 相关代码和数据库文件
2024-12-23 23:10:22 +08:00

209 lines
3.8 KiB
JavaScript

// const sqlite = require('../db/sqlite.config')
const User = require('../models/user.model')
/**`
* 查询用户 - account
* @param {*} account
* @returns {User}
*/
exports.selectByAccount = async (account) => {
let db
try {
db = await sqlite.connectSqlite()
const rows = await new Promise((resolve, reject) => {
db.all('SELECT * FROM USERS WHERE `USER_ACCOUNT` = ?', [account], (err, rows) => {
if (err) {
reject(err)
} else {
resolve(rows)
}
})
})
return (await getUser(rows))[0]
} catch (err) {
throw err
} finally {
try {
await db.close()
} catch (error) {
throw err
}
}
}
/**
* 查询用户 - id
* @param {*} id
* @returns {User}
*/
exports.selectById = async (id) => {
let db
try {
db = await sqlite.connectSqlite()
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)[0]
} catch (err) {
throw err
} finally {
try {
await db.close()
} catch (error) {
throw err
}
}
}
/**
* 查询用户 - name
* @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 WHERE = ?', [name], 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} _user
*/
exports.insertUser = async (_user) => {
let db
try {
db = await sqlite.connectSqlite()
const u = 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)
}
)
})
console.log('新增成功', u.toString())
} 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)
})
return users
}