feat: 重构项目并添加 MongoDB 支持
- 新增 Prettier 配置文件,规范代码格式 - 重构用户控制器和 DAO 层代码,提高可读性和维护性 - 添加 MongoDB 数据库配置和连接逻辑 - 更新用户模型,使用 Mongoose Schema 定义 - 新增密码加密功能 - 删除 SQLite 相关代码和数据库文件
This commit is contained in:
parent
c2e37e0fad
commit
cfe9f92013
8
.prettierrc
Normal file
8
.prettierrc
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/prettierrc",
|
||||
"semi": false,
|
||||
"tabWidth": 2,
|
||||
"singleQuote": true,
|
||||
"printWidth": 100,
|
||||
"trailingComma": "none"
|
||||
}
|
||||
@ -1,6 +1,6 @@
|
||||
const expressAsyncHandler = require("express-async-handler");
|
||||
|
||||
const User = require("../models/user");
|
||||
const User = require("../models/user.model");
|
||||
|
||||
exports.user_list = expressAsyncHandler(async (req, res, next) => {
|
||||
try {
|
||||
|
||||
@ -1,37 +1,37 @@
|
||||
const sqlite = require('../db/sqlite.config');
|
||||
const User = require("../models/user.model");
|
||||
// const sqlite = require('../db/sqlite.config')
|
||||
const User = require('../models/user.model')
|
||||
|
||||
/**
|
||||
/**`
|
||||
* 查询用户 - account
|
||||
* @param {*} account
|
||||
* @returns {User}
|
||||
*/
|
||||
exports.selectByAccount = async (account) => {
|
||||
let db;
|
||||
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;
|
||||
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
|
||||
@ -39,31 +39,31 @@ exports.selectByAccount = async (account) => {
|
||||
* @returns {User}
|
||||
*/
|
||||
exports.selectById = async (id) => {
|
||||
let db;
|
||||
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;
|
||||
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
|
||||
@ -71,56 +71,56 @@ exports.selectById = async (id) => {
|
||||
* @returns
|
||||
*/
|
||||
exports.selectByName = async (name) => {
|
||||
let db;
|
||||
let db
|
||||
|
||||
try {
|
||||
db = await sqlite.connectSqlite();
|
||||
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);
|
||||
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;
|
||||
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);
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -128,35 +128,37 @@ exports.selectAllUser = async () => {
|
||||
* @param {User} _user
|
||||
*/
|
||||
exports.insertUser = async (_user) => {
|
||||
let db;
|
||||
let db
|
||||
|
||||
try {
|
||||
db = await sqlite.connectSqlite();
|
||||
try {
|
||||
db = await sqlite.connectSqlite()
|
||||
|
||||
const u = await new Promise((resolve, reject) => {
|
||||
db.run('INSERT \
|
||||
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);
|
||||
[_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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** 修改密码
|
||||
@ -164,31 +166,31 @@ exports.insertUser = async (_user) => {
|
||||
* @param userId
|
||||
*/
|
||||
exports.updatePassword = async (password, userId) => {
|
||||
let db;
|
||||
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;
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -196,11 +198,11 @@ exports.updatePassword = async (password, userId) => {
|
||||
* @param rows
|
||||
*/
|
||||
getUser = async (rows) => {
|
||||
let users = new Array();
|
||||
let users = new Array()
|
||||
|
||||
rows.map((value, index) => {
|
||||
users[index] = new User(value);
|
||||
});
|
||||
rows.map((value, index) => {
|
||||
users[index] = new User(value)
|
||||
})
|
||||
|
||||
return users;
|
||||
return users
|
||||
}
|
||||
|
||||
@ -1,16 +1,47 @@
|
||||
const mongoose = require("mongoose");
|
||||
const mongoose = require('mongoose')
|
||||
|
||||
/**
|
||||
* mongoose连接mongodb数据库
|
||||
* @param {String} account 数据库账号
|
||||
* @param {String} password 数据库密码
|
||||
*/
|
||||
exports.connectMongoDB = function (account, password) {
|
||||
// mongoose连接mongodb
|
||||
const mongoDBUrl = `mongodb://${account}:${password}@47.106.93.245:27017/customapi?authSource=admin`;
|
||||
mongoose.connect(mongoDBUrl);
|
||||
const db = mongoose.connection;
|
||||
db.on("connected", () => console.log("MongoDB 连接成功"));
|
||||
db.on("error", err => console.error(err, "\nMongoDB 连接错误"));
|
||||
db.on("close", () => console.log("\nMongoDB 连接关闭"));
|
||||
// 使用环境变量存储敏感信息
|
||||
const account = process.env.MONGO_ACCOUNT
|
||||
const password = process.env.MONGO_PASSWORD
|
||||
const host = process.env.MONGO_HOST || '122.152.201.90'
|
||||
const port = process.env.MONGO_PORT || '27017'
|
||||
const dbName = process.env.MONGO_DB_NAME || 'customer'
|
||||
const authSource = process.env.MONGO_AUTH_SOURCE || 'admin'
|
||||
|
||||
let isConnected = false
|
||||
|
||||
exports.connectMongoDB = async function () {
|
||||
if (isConnected) {
|
||||
console.log('MongoDB 已经连接')
|
||||
return
|
||||
}
|
||||
|
||||
try {
|
||||
const mongoDBUrl = `mongodb://${account}:${password}@${host}:${port}/${dbName}`
|
||||
|
||||
// 连接 MongoDB
|
||||
await mongoose.connect(mongoDBUrl, {
|
||||
useNewUrlParser: true,
|
||||
useUnifiedTopology: true
|
||||
})
|
||||
|
||||
const db = mongoose.connection
|
||||
db.on('connected', () => {
|
||||
console.log('MongoDB 连接成功')
|
||||
isConnected = true
|
||||
})
|
||||
db.on('error', (err) => {
|
||||
console.error('MongoDB 连接错误:', err.message)
|
||||
// 可以在这里添加重试逻辑
|
||||
})
|
||||
db.on('close', () => {
|
||||
console.log('MongoDB 连接关闭')
|
||||
isConnected = false
|
||||
})
|
||||
|
||||
console.log('MongoDB 连接初始化成功')
|
||||
} catch (err) {
|
||||
console.error('MongoDB 连接初始化失败:', err.message)
|
||||
throw err
|
||||
}
|
||||
}
|
||||
@ -1,17 +0,0 @@
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
|
||||
exports.connectSqlite = async function () {
|
||||
return new Promise((resolve, reject) => {
|
||||
const db = new sqlite3.Database(
|
||||
"./express.db",
|
||||
sqlite3.OPEN_READWRITE,
|
||||
function (err) {
|
||||
if (err) {
|
||||
reject(err); // Reject the promise if there's an error
|
||||
} else {
|
||||
resolve(db); // Resolve with the database object if successful
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
};
|
||||
BIN
express.db
BIN
express.db
Binary file not shown.
@ -1,8 +0,0 @@
|
||||
const mongoose = require("mongoose");
|
||||
const Schema = mongoose.Schema;
|
||||
|
||||
const sessionSchema = new Schema({
|
||||
|
||||
});
|
||||
|
||||
module.exports = mongoose.Model("session", sessionSchema);
|
||||
@ -1,18 +0,0 @@
|
||||
const mongoose = require("mongoose");
|
||||
const Schema = mongoose.Schema;
|
||||
|
||||
const UserSchema = new Schema({
|
||||
name: { type: String, required: true, max: 100 },
|
||||
gender: { type: String, max: 20 },
|
||||
birth: { type: Date },
|
||||
avatar: { type: String, max: 100 },
|
||||
account: { type: String, required: true, max: 100 },
|
||||
password: { type: String, required: true, max: 100 },
|
||||
email: { type: String, max: 20 },
|
||||
phone: { type: String, max: 11 },
|
||||
register_date: { type: Date },
|
||||
last_login_date: { type: Date },
|
||||
status: { type: String },
|
||||
});
|
||||
|
||||
module.exports = mongoose.model("User", UserSchema);
|
||||
@ -1,101 +1,35 @@
|
||||
class User {
|
||||
id;
|
||||
user_account;
|
||||
user_name;
|
||||
password;
|
||||
email;
|
||||
mobile;
|
||||
status;
|
||||
create_time;
|
||||
update_time;
|
||||
const mongoose = require('mongoose')
|
||||
const bcrypt = require('bcrypt')
|
||||
const Schema = mongoose.Schema
|
||||
|
||||
constructor(obj) {
|
||||
Object.assign(this, obj);
|
||||
}
|
||||
const UserSchema = new Schema({
|
||||
name: { type: String, required: true, maxlength: 100 },
|
||||
gender: { type: String, enum: ['male', 'female', 'other'], maxlength: 20 },
|
||||
birth: { type: Date },
|
||||
avatar: { type: String, maxlength: 100 },
|
||||
account: { type: String, required: true, unique: true, maxlength: 100, index: true },
|
||||
password: { type: String, required: true, maxlength: 100, set: hashPassword },
|
||||
email: { type: String, maxlength: 255, index: true },
|
||||
phone: { type: String, maxlength: 11 },
|
||||
register_date: { type: Date, default: Date.now },
|
||||
last_login_date: { type: Date, default: Date.now },
|
||||
status: { type: String, enum: ['active', 'inactive', 'pending'], default: 'pending' }
|
||||
})
|
||||
|
||||
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;
|
||||
}
|
||||
function hashPassword(password) {
|
||||
return bcrypt.hash(password, 10)
|
||||
}
|
||||
|
||||
module.exports = User;
|
||||
UserSchema.pre('save', async function (next) {
|
||||
const user = this
|
||||
if (!user.isModified('password')) return next()
|
||||
try {
|
||||
const hashedPassword = await hashPassword(user.password)
|
||||
user.password = hashedPassword
|
||||
next()
|
||||
} catch (error) {
|
||||
next(error)
|
||||
}
|
||||
})
|
||||
|
||||
module.exports = mongoose.model('User', UserSchema)
|
||||
|
||||
250
package-lock.json
generated
250
package-lock.json
generated
@ -22,6 +22,10 @@
|
||||
"morgan": "~1.9.1",
|
||||
"nodemon": "^3.1.0",
|
||||
"sqlite3": "^5.1.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"bcrypt": "^5.1.1",
|
||||
"prettier": "^3.4.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@gar/promisify": {
|
||||
@ -30,6 +34,94 @@
|
||||
"integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/@mapbox/node-pre-gyp": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmmirror.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz",
|
||||
"integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==",
|
||||
"dev": true,
|
||||
"license": "BSD-3-Clause",
|
||||
"dependencies": {
|
||||
"detect-libc": "^2.0.0",
|
||||
"https-proxy-agent": "^5.0.0",
|
||||
"make-dir": "^3.1.0",
|
||||
"node-fetch": "^2.6.7",
|
||||
"nopt": "^5.0.0",
|
||||
"npmlog": "^5.0.1",
|
||||
"rimraf": "^3.0.2",
|
||||
"semver": "^7.3.5",
|
||||
"tar": "^6.1.11"
|
||||
},
|
||||
"bin": {
|
||||
"node-pre-gyp": "bin/node-pre-gyp"
|
||||
}
|
||||
},
|
||||
"node_modules/@mapbox/node-pre-gyp/node_modules/are-we-there-yet": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
|
||||
"integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
|
||||
"deprecated": "This package is no longer supported.",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"delegates": "^1.0.0",
|
||||
"readable-stream": "^3.6.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/@mapbox/node-pre-gyp/node_modules/gauge": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/gauge/-/gauge-3.0.2.tgz",
|
||||
"integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
|
||||
"deprecated": "This package is no longer supported.",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"aproba": "^1.0.3 || ^2.0.0",
|
||||
"color-support": "^1.1.2",
|
||||
"console-control-strings": "^1.0.0",
|
||||
"has-unicode": "^2.0.1",
|
||||
"object-assign": "^4.1.1",
|
||||
"signal-exit": "^3.0.0",
|
||||
"string-width": "^4.2.3",
|
||||
"strip-ansi": "^6.0.1",
|
||||
"wide-align": "^1.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/@mapbox/node-pre-gyp/node_modules/nopt": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/nopt/-/nopt-5.0.0.tgz",
|
||||
"integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"abbrev": "1"
|
||||
},
|
||||
"bin": {
|
||||
"nopt": "bin/nopt.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/@mapbox/node-pre-gyp/node_modules/npmlog": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/npmlog/-/npmlog-5.0.1.tgz",
|
||||
"integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
|
||||
"deprecated": "This package is no longer supported.",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"are-we-there-yet": "^2.0.0",
|
||||
"console-control-strings": "^1.1.0",
|
||||
"gauge": "^3.0.0",
|
||||
"set-blocking": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@mongodb-js/saslprep": {
|
||||
"version": "1.1.6",
|
||||
"resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.6.tgz",
|
||||
@ -117,7 +209,7 @@
|
||||
"version": "6.0.2",
|
||||
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
|
||||
"integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
|
||||
"optional": true,
|
||||
"devOptional": true,
|
||||
"dependencies": {
|
||||
"debug": "4"
|
||||
},
|
||||
@ -129,7 +221,7 @@
|
||||
"version": "4.3.5",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
|
||||
"integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
|
||||
"optional": true,
|
||||
"devOptional": true,
|
||||
"dependencies": {
|
||||
"ms": "2.1.2"
|
||||
},
|
||||
@ -146,7 +238,7 @@
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"optional": true
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/agentkeepalive": {
|
||||
"version": "4.5.0",
|
||||
@ -177,7 +269,7 @@
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||||
"optional": true,
|
||||
"devOptional": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
@ -198,7 +290,7 @@
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
|
||||
"integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==",
|
||||
"optional": true
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/are-we-there-yet": {
|
||||
"version": "3.0.1",
|
||||
@ -254,6 +346,28 @@
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/bcrypt": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmmirror.com/bcrypt/-/bcrypt-5.1.1.tgz",
|
||||
"integrity": "sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@mapbox/node-pre-gyp": "^1.0.11",
|
||||
"node-addon-api": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/bcrypt/node_modules/node-addon-api": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/node-addon-api/-/node-addon-api-5.1.0.tgz",
|
||||
"integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/binary-extensions": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
|
||||
@ -530,7 +644,7 @@
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
|
||||
"integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
|
||||
"optional": true,
|
||||
"devOptional": true,
|
||||
"bin": {
|
||||
"color-support": "bin.js"
|
||||
}
|
||||
@ -552,7 +666,7 @@
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
|
||||
"integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
|
||||
"optional": true
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/content-disposition": {
|
||||
"version": "0.5.4",
|
||||
@ -679,7 +793,7 @@
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
|
||||
"integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
|
||||
"optional": true
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/depd": {
|
||||
"version": "1.1.2",
|
||||
@ -726,7 +840,7 @@
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
||||
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
|
||||
"optional": true
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/encodeurl": {
|
||||
"version": "1.0.2",
|
||||
@ -1103,7 +1217,7 @@
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
|
||||
"optional": true
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/fsevents": {
|
||||
"version": "2.3.3",
|
||||
@ -1174,7 +1288,7 @@
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
|
||||
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
|
||||
"deprecated": "Glob versions prior to v9 are no longer supported",
|
||||
"optional": true,
|
||||
"devOptional": true,
|
||||
"dependencies": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
@ -1263,7 +1377,7 @@
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
|
||||
"integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
|
||||
"optional": true
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/hasown": {
|
||||
"version": "2.0.2",
|
||||
@ -1337,7 +1451,7 @@
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
|
||||
"integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
|
||||
"optional": true,
|
||||
"devOptional": true,
|
||||
"dependencies": {
|
||||
"agent-base": "6",
|
||||
"debug": "4"
|
||||
@ -1350,7 +1464,7 @@
|
||||
"version": "4.3.5",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
|
||||
"integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
|
||||
"optional": true,
|
||||
"devOptional": true,
|
||||
"dependencies": {
|
||||
"ms": "2.1.2"
|
||||
},
|
||||
@ -1367,7 +1481,7 @@
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"optional": true
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/humanize-ms": {
|
||||
"version": "1.2.1",
|
||||
@ -1442,7 +1556,7 @@
|
||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
|
||||
"deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
|
||||
"optional": true,
|
||||
"devOptional": true,
|
||||
"dependencies": {
|
||||
"once": "^1.3.0",
|
||||
"wrappy": "1"
|
||||
@ -1502,7 +1616,7 @@
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
|
||||
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
|
||||
"optional": true,
|
||||
"devOptional": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
@ -1590,6 +1704,32 @@
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/make-dir": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz",
|
||||
"integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"semver": "^6.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/make-dir/node_modules/semver": {
|
||||
"version": "6.3.1",
|
||||
"resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
|
||||
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
}
|
||||
},
|
||||
"node_modules/make-fetch-happen": {
|
||||
"version": "9.1.0",
|
||||
"resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz",
|
||||
@ -1993,6 +2133,52 @@
|
||||
"node": "^16 || ^18 || >= 20"
|
||||
}
|
||||
},
|
||||
"node_modules/node-fetch": {
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz",
|
||||
"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"whatwg-url": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "4.x || >=6.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"encoding": "^0.1.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"encoding": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/node-fetch/node_modules/tr46": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz",
|
||||
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/node-fetch/node_modules/webidl-conversions": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
|
||||
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
|
||||
"dev": true,
|
||||
"license": "BSD-2-Clause"
|
||||
},
|
||||
"node_modules/node-fetch/node_modules/whatwg-url": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz",
|
||||
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"tr46": "~0.0.3",
|
||||
"webidl-conversions": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/node-gyp": {
|
||||
"version": "8.4.1",
|
||||
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz",
|
||||
@ -2188,7 +2374,7 @@
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
|
||||
"optional": true,
|
||||
"devOptional": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
@ -2234,6 +2420,22 @@
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"version": "3.4.2",
|
||||
"resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.4.2.tgz",
|
||||
"integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"prettier": "bin/prettier.cjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/promise": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/promise/-/promise-2.0.0.tgz",
|
||||
@ -2432,7 +2634,7 @@
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
|
||||
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
|
||||
"deprecated": "Rimraf versions prior to v4 are no longer supported",
|
||||
"optional": true,
|
||||
"devOptional": true,
|
||||
"dependencies": {
|
||||
"glob": "^7.1.3"
|
||||
},
|
||||
@ -2562,7 +2764,7 @@
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
|
||||
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
|
||||
"optional": true
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/set-function-length": {
|
||||
"version": "1.2.2",
|
||||
@ -2611,7 +2813,7 @@
|
||||
"version": "3.0.7",
|
||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
|
||||
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
|
||||
"optional": true
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/simple-concat": {
|
||||
"version": "1.0.1",
|
||||
@ -2816,7 +3018,7 @@
|
||||
"version": "4.2.3",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
||||
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
||||
"optional": true,
|
||||
"devOptional": true,
|
||||
"dependencies": {
|
||||
"emoji-regex": "^8.0.0",
|
||||
"is-fullwidth-code-point": "^3.0.0",
|
||||
@ -2830,7 +3032,7 @@
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||||
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
||||
"optional": true,
|
||||
"devOptional": true,
|
||||
"dependencies": {
|
||||
"ansi-regex": "^5.0.1"
|
||||
},
|
||||
@ -3106,7 +3308,7 @@
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
|
||||
"integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
|
||||
"optional": true,
|
||||
"devOptional": true,
|
||||
"dependencies": {
|
||||
"string-width": "^1.0.2 || 2 || 3 || 4"
|
||||
}
|
||||
|
||||
@ -21,5 +21,9 @@
|
||||
"morgan": "~1.9.1",
|
||||
"nodemon": "^3.1.0",
|
||||
"sqlite3": "^5.1.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"bcrypt": "^5.1.1",
|
||||
"prettier": "^3.4.2"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,32 +1,31 @@
|
||||
var express = require('express');
|
||||
var router = express.Router();
|
||||
|
||||
const user_controller = require("../controllers/userController");
|
||||
const User = require("../models/user.model");
|
||||
const userService = require("../service/user.service");
|
||||
const StringUtils = require("../utils/StringUtil");
|
||||
const user_controller = require('../controllers/userController');
|
||||
const User = require('../models/user.model');
|
||||
const userService = require('../service/user.service');
|
||||
const StringUtils = require('../utils/StringUtil');
|
||||
|
||||
/* GET home page. */
|
||||
router.get('/', function (req, res, next) {
|
||||
// const session = req.session;
|
||||
// session['key'] = 'testvalue';
|
||||
// console.log(session);
|
||||
// res.setHeader('set-cookies', session['key']);
|
||||
res.send('test');
|
||||
// res.status('404').json({ error: 'Acess is denied' });
|
||||
});
|
||||
|
||||
router.get('/user', async function (req, res, next) {
|
||||
console.log(req.session);
|
||||
console.log(req.session.account);
|
||||
if (req.session.account === null || req.session.account === '' || req.session.account === undefined) {
|
||||
if (
|
||||
req.session.account === null ||
|
||||
req.session.account === '' ||
|
||||
req.session.account === undefined
|
||||
) {
|
||||
res.send('not login');
|
||||
return;
|
||||
}
|
||||
let us = await user_controller.user_list();
|
||||
us = JSON.stringify(us);
|
||||
res.send(us);
|
||||
})
|
||||
});
|
||||
|
||||
router.post('/login', async function (req, res, next) {
|
||||
const body = req.body;
|
||||
@ -44,11 +43,11 @@ router.post('/login', async function (req, res, next) {
|
||||
|
||||
const user = await user_controller.find_user_login(account);
|
||||
if (!user) {
|
||||
return res.json({ ret_code: -1, ret_msg: '账号不存在' })
|
||||
return res.json({ ret_code: -1, ret_msg: '账号不存在' });
|
||||
}
|
||||
|
||||
if (user.password != password) {
|
||||
return res.json({ ret_code: -1, ret_msg: '密码错误' })
|
||||
return res.json({ ret_code: -1, ret_msg: '密码错误' });
|
||||
}
|
||||
|
||||
req.session.regenerate((err) => {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user