From 22e215835c956c3224a8e15ba904bd73da645941 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9C=9F=E8=B1=86=E5=93=A5?= Date: Sun, 7 Aug 2022 19:01:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/db.js | 6 ---- config/dbPool.js | 4 --- controllers/logController.js | 27 +++++++------- middleware/error.js | 5 ++- middleware/log.js | 30 +++++++++------- model/logModel.js | 56 +++++++++++++---------------- router/log.js | 55 ++++++++++++++-------------- router/login.js | 7 +--- services/logServices.js | 69 +++++++++++++++++++++--------------- services/userServices.js | 2 +- utils/index.js | 16 +++++---- utils/jsonResult.js | 9 +++++ 12 files changed, 145 insertions(+), 141 deletions(-) diff --git a/config/db.js b/config/db.js index 63892fd..0a0e600 100644 --- a/config/db.js +++ b/config/db.js @@ -12,7 +12,6 @@ class DB { console.log("数据库连接失败"); throw err; } - console.log("数据库连接成功"); }); //3.执行sql查询 connection.query(sql, params, (err, results, fields) => { @@ -20,7 +19,6 @@ class DB { console.log("数据库操作失败"); throw err; } - console.log("数据库操作成功"); callBack && callBack({ results, fields }); }); //4.关闭连接 @@ -29,7 +27,6 @@ class DB { console.log("数据库关闭失败"); throw err; } - console.log("数据库关闭成功"); }); } @@ -45,7 +42,6 @@ class DB { reject(err); return; } - console.log("数据库连接成功"); }); //3.执行sql查询 connection.query(sql, params, (err, results, fields) => { @@ -54,7 +50,6 @@ class DB { reject(err); return; } - console.log("数据库操作成功"); resolve({ results, fields, @@ -67,7 +62,6 @@ class DB { reject(err); return; } - console.log("数据库关闭成功"); }); }); } diff --git a/config/dbPool.js b/config/dbPool.js index fddebc8..6c2d701 100644 --- a/config/dbPool.js +++ b/config/dbPool.js @@ -12,7 +12,6 @@ class DBPool { console.log("数据库连接失败"); throw err; } - console.log("数据库连接成功"); //3.执行sql查询 connection.query(sql, params, (err, results, fields) => { //4.释放连接 @@ -22,7 +21,6 @@ class DBPool { console.log("数据库操作失败"); throw err; } - console.log("数据库操作成功"); callBack && callBack({ results, fields }); }); }); @@ -37,7 +35,6 @@ class DBPool { reject(err); return; } - console.log("数据库连接成功"); connection.query(sql, params, (err, results, fields) => { connection.release(); // connection.destroy(); @@ -46,7 +43,6 @@ class DBPool { reject(err); return; } - console.log("数据库操作成功"); resolve({ results, fields, diff --git a/controllers/logController.js b/controllers/logController.js index d59217c..af76d3c 100644 --- a/controllers/logController.js +++ b/controllers/logController.js @@ -1,25 +1,28 @@ const { getLogPageList, - addOperateLog, - addErrorLog, removeLog, - batchRemoveLog + batchRemoveLog, } = require("../services/logServices"); class LogController { - constructor() { } + constructor() {} getPageList(query) { - const { current, size,operateUserId ,startTime,endTime} = query - return getLogPageList(current, size,operateUserId,startTime,endTime) + const { logType, current, size, startTime, endTime } = query; + return getLogPageList( + logType, + current, + size, + startTime, + endTime + ); } remove(body) { - const { id } = body - return removeLog(id) + const { id } = body; + return removeLog(id); } - batchRemove(body){ - const {ids}=body - return batchRemoveLog(ids) + batchRemove(body) { + const { ids } = body; + return batchRemoveLog(ids); } - } module.exports = new LogController(); diff --git a/middleware/error.js b/middleware/error.js index fef5ae4..bfc7831 100644 --- a/middleware/error.js +++ b/middleware/error.js @@ -1,5 +1,4 @@ const errorHandler=(err,req,res,next)=>{ - console.log('err',err.name); let code=500 let message='Internal Server Error' if(err.name==='UnauthorizedError'){ @@ -8,8 +7,8 @@ const errorHandler=(err,req,res,next)=>{ } res.statusCode=code; res.send({ - status:code, - msg:message, + status:1, + msg:'服务器内部错误', data:null }) } diff --git a/middleware/log.js b/middleware/log.js index 96b8478..ced7eef 100644 --- a/middleware/log.js +++ b/middleware/log.js @@ -1,31 +1,35 @@ const log4js = require("log4js"); const logConfig = require("../config/log.config"); +const { addOperateLog, addErrorLog } = require("../services/logServices"); log4js.configure(logConfig); module.exports = { logOperateHandler: (req, res, next) => { + console.log('res',res); const logger = log4js.getLogger("info"); - const log1 = { - method: req.method, - url: req.url, - query: req.query, - body: req.body, + const log = { + operateApi: req.url, + requestParams: JSON.stringify({ query: req.query, body: req.body }), + ip: req.ip, }; - logger.info(log1); + // logger.info(log); + if(!req.url.startsWith('/api/log/getPageList')){ + addOperateLog(log); + } next(); }, logErrorHandler: (err, req, res, next) => { - console.log('err11',err); const logger = log4js.getLogger("error"); const log = { - method: req.method, - url: req.url, - query: req.query, - body: req.body, - message: err.message, + operateApi: req.url, + requestParams: JSON.stringify({ query: req.query, body: req.body }), + errorMessage: err.message, + exceptionMessage:err.stack, + ip: req.ip, }; logger.error(log); - next(); + addErrorLog(log); + next(err); }, }; diff --git a/model/logModel.js b/model/logModel.js index 636755c..a6250ed 100644 --- a/model/logModel.js +++ b/model/logModel.js @@ -1,55 +1,47 @@ const db = require("../config/dbPool"); -const {getDateTime}=require("../utils/index") +const { formatDate } = require("../utils/index"); class LogModel { - selectPage(current, size, operateUserId, startTime, endTime) { - let whereStr = `1=1` - if (operateUserId) { - whereStr = `${whereStr} and operate_user_id=${operateUserId}` - } + selectPage(logType, current, size, startTime, endTime) { + let whereStr = `log_type=${logType}`; if (startTime && endTime) { - startTime = getDateTime(startTime) - endTime = getDateTime(endTime) - whereStr = `${whereStr} and log_time>='${startTime}' and log_time<'${endTime}'` + startTime = formatDate(startTime); + endTime = formatDate(endTime); + whereStr = `${whereStr} and log_time>='${startTime}' and log_time<'${endTime}'`; } - const sql = `select * from sys_logs where ${whereStr} order by id desc limit ?,?` - const sqlArr = [current, size] - return db.queryAsync(sql, sqlArr) + const sql = `select * from sys_logs where ${whereStr} order by id desc limit ?,?`; + const sqlArr = [current, size]; + return db.queryAsync(sql, sqlArr); } - selectTotal(operateUserId, startTime, endTime) { - let whereStr = `1=1` - if (operateUserId) { - whereStr = `${whereStr} and operate_user_id=${operateUserId}` - } + selectTotal(logType, startTime, endTime) { + let whereStr = `log_type=${logType}`; if (startTime && endTime) { - startTime = getDateTime(startTime) - endTime = getDateTime(endTime) - whereStr = `${whereStr} and log_time>='${startTime}' and log_time<'${endTime}'` + startTime = formatDate(startTime); + endTime = formatDate(endTime); + whereStr = `${whereStr} and log_time>='${startTime}' and log_time<'${endTime}'`; } - const sql = `select count(id) as total from sys_logs where ${whereStr}` - const sqlArr = [] - return db.queryAsync(sql, sqlArr) + const sql = `select count(id) as total from sys_logs where ${whereStr}`; + const sqlArr = []; + return db.queryAsync(sql, sqlArr); } insert(log) { - const sql = `insert into sys_logs(log_time,operate_api,requst_params,error_message,exception_message,log_type,ip,operate_user_id) values(?,?,?,?,?,?,?,?)` + const sql = `insert into sys_logs(log_time,operate_api,request_params,error_message,exception_message,log_type,ip) values(?,?,?,?,?,?,?)`; const sqlArr = [ log.logTime, log.operateApi, - log.requstParams, + log.requestParams, log.errorMessage, log.exceptionMessage, log.logType, log.ip, - log.operateUserId - ] - return db.queryAsync(sql, sqlArr) + ]; + return db.queryAsync(sql, sqlArr); } remove(ids) { - const sql = `delete from sys_logs where id in (${ids})` - const sqlArr = [] - return db.queryAsync(sql, sqlArr) + const sql = `delete from sys_logs where id in (${ids})`; + const sqlArr = []; + return db.queryAsync(sql, sqlArr); } - } module.exports = new LogModel(); diff --git a/router/log.js b/router/log.js index 9163e18..40444c4 100644 --- a/router/log.js +++ b/router/log.js @@ -1,41 +1,41 @@ const express = require("express"); -const { query } = require("../config/dbPool"); const router = express.Router(); const { getPageList, remove, - batchRemove - + batchRemove, } = require("../controllers/logController"); router.get("/api/log/getPageList", (req, res, next) => { - const { query } = req - getPageList(query).then((data) => { - res.send(data) - }).catch((err) => { - res.send({ - data: null, - msg: "获取日志分页列表失败", - status: 1, + const { query } = req; + getPageList(query) + .then((data) => { + res.send(data); + }) + .catch((err) => { + res.send({ + data: null, + msg: "获取日志分页列表失败", + status: 1, + }); + next(err); }); - next(err) - }) -}) - +}); router.post("/api/log/remove", (req, res, next) => { - const { body } = req - remove(body).then((data) => { - res.send(data) - }).catch((err) => { - res.send({ - data: null, - msg: "删除日志失败", - status:1 + const { body } = req; + remove(body) + .then((data) => { + res.send(data); }) - next(err) - }) -}) - + .catch((err) => { + res.send({ + data: null, + msg: "删除日志失败", + status: 1, + }); + next(err); + }); +}); router.post("/api/log/batchRemove", (req, res, next) => { const { body } = req; batchRemove(body) @@ -51,5 +51,4 @@ router.post("/api/log/batchRemove", (req, res, next) => { next(err); }); }); - module.exports = router; diff --git a/router/login.js b/router/login.js index e82db70..8f8dbc4 100644 --- a/router/login.js +++ b/router/login.js @@ -8,12 +8,7 @@ router.post("/api/login", (req, res,next) => { login(body).then((data) => { res.send(data) }).catch((err) => { - res.send({ - data: null, - msg: "登录失败", - status: 1, - }); - next(err); + next(err) }); }); diff --git a/services/logServices.js b/services/logServices.js index f585d3a..3bf332f 100644 --- a/services/logServices.js +++ b/services/logServices.js @@ -8,57 +8,71 @@ const { } = require("../model/logModel"); class LogServices { - constructor() { } - async getLogPageList(current, size,operateUserId ,startTime,endTime) { + constructor() {} + async getLogPageList( + logType, + current, + size, + startTime, + endTime + ) { try { let pageIndex = 1; let pageSize = 10; if (current < 1) { - current = 1 + current = 1; } if (size < 1) { size = 10; } - current = parseInt(current) - size = parseInt(size) - pageIndex = size * (current - 1) - pageSize = size - const pageListResult = await selectPage(pageIndex, pageSize,operateUserId ,startTime,endTime) + current = parseInt(current); + size = parseInt(size); + pageIndex = size * (current - 1); + pageSize = size; + const pageListResult = await selectPage( + logType, + pageIndex, + pageSize, + startTime, + endTime + ); const pageList = pageListResult.results; - const totalResult = await selectTotal(operateUserId ,startTime,endTime) - console.log(totalResult) - const total = totalResult.results && totalResult.results[0].total - return success('日志分页列表', pageList, { + const totalResult = await selectTotal( + logType, + startTime, + endTime + ); + console.log(totalResult); + const total = totalResult.results && totalResult.results[0].total; + return success("日志分页列表", pageList, { current, size, - total - }) + total, + }); } catch (error) { - throw error + throw error; } } async addOperateLog(log) { try { log.logTime = getDate(); - log.logType = 0 - await insert(log) - return success(`添加操作日志成功`) + log.logType = 0; + await insert(log); + return success(`添加操作日志成功`); } catch (error) { - throw error + throw error; } } - async addErrorLog(log) { try { - log.logTime = getDate(0); - log.logType = 1 - await insert(log) - return success(`添加错误日志成功`) + log.logTime = getDate(); + log.logType = 1; + await insert(log); + return success(`添加错误日志成功`); } catch (error) { - throw error + throw error; } } - async removeLog(id) { try { await remove(id); @@ -67,7 +81,6 @@ class LogServices { throw error; } } - async batchRemoveLog(ids) { try { await remove(ids); @@ -76,7 +89,5 @@ class LogServices { throw error; } } - - } module.exports = new LogServices(); diff --git a/services/userServices.js b/services/userServices.js index 1dea61f..d7343df 100644 --- a/services/userServices.js +++ b/services/userServices.js @@ -92,7 +92,7 @@ class UserServices { if (password !== passwordMd5) { throw error; } else { - const token = jwt.sign({ userName }, "quick", { + const token = jwt.sign({ id:user.id,userName:user.userName }, "quick", { expiresIn: 1000 * 60 * 5, }); //过期时间5分 return success("登录成功", { diff --git a/utils/index.js b/utils/index.js index bc1b528..3754f59 100644 --- a/utils/index.js +++ b/utils/index.js @@ -1,6 +1,6 @@ const os = require("os"); const moment = require("moment"); -const md5 = require("js-md5") +const md5 = require("js-md5"); const orderNumber = () => { const now = new Date(); @@ -24,12 +24,13 @@ const getDate = (date = new Date(), format = "YYYY-MM-DD HH:mm:ss") => { return moment(date).format(format); }; -const getDateTime = (timeStamp, format = "YYYY-MM-DD HH:mm:ss") => { - return moment(timeStamp/1000).format(format) +const formatDate = (timeStamp, format = "YYYY-MM-DD HH:mm:ss") => { + //timeStamp=1659542400 转换后 2022-08-04 00:00:00 + return moment(timeStamp * 1000).format(format); //s }; const getTimeStamp = () => { - return moment().format('x'); + return moment().format("x"); }; const getIPAddress = () => { const interfaces = os.networkInterfaces(); @@ -48,13 +49,14 @@ const getIPAddress = () => { } }; const quickMd5 = (str) => { - return md5(str) -} + return md5(str); +}; module.exports = { orderNumber, getDate, - getDateTime, + formatDate, + getTimeStamp, getIPAddress, quickMd5, }; diff --git a/utils/jsonResult.js b/utils/jsonResult.js index 0034d33..6c3a46e 100644 --- a/utils/jsonResult.js +++ b/utils/jsonResult.js @@ -18,4 +18,13 @@ module.exports = { }; return obj; }, + exception: (msg,err) => { + const obj = { + status: 1, + msg, + err, + data: null, + }; + return obj; + }, }; -- Gitee