Commit ef9d90b4 by lixinming

no message

parent 683df2dd
...@@ -10,11 +10,13 @@ ...@@ -10,11 +10,13 @@
"express": "^4.17.1", "express": "^4.17.1",
"express-async-handler": "^1.1.4", "express-async-handler": "^1.1.4",
"formidable": "^1.2.1", "formidable": "^1.2.1",
"log4js": "^6.3.0",
"lru-cache": "^4.1.5", "lru-cache": "^4.1.5",
"md5": "^2.2.1", "md5": "^2.2.1",
"moment": "^2.24.0", "moment": "^2.24.0",
"mongoose": "^5.4.0", "mongoose": "^5.4.0",
"mysql": "^2.18.1", "mysql": "^2.18.1",
"node-psd": "^1.0.1",
"node-xlsx": "^0.16.1", "node-xlsx": "^0.16.1",
"nodemailer": "^6.1.1", "nodemailer": "^6.1.1",
"request": "^2.88.0", "request": "^2.88.0",
......
File added
//关于图片的操作
export async function up() {
}
export async function dow() {
}
\ No newline at end of file
...@@ -2,26 +2,15 @@ import { mongoServerConstVal } from "../../serverConfig"; ...@@ -2,26 +2,15 @@ import { mongoServerConstVal } from "../../serverConfig";
import { createDbConnect } from "./db_connect"; import { createDbConnect } from "./db_connect";
import { tableInit } from "./table_init"; import { tableInit } from "./table_init";
let userDB; let picDB;
let pictureDB;
let logDB;
export async function initDB() { export async function initDB() {
if (mongoServerConstVal.userUrl) { mongoServerConstVal.picDBUrl
userDB = await createDbConnect(mongoServerConstVal.userUrl).catch(err => {throw err}); picDB = await createDbConnect(mongoServerConstVal.picDBUrl() ).catch(err => {throw err});
process.stdin.emit('userdbinit success'); process.stdin.emit(`picDB success url => ${mongoServerConstVal.picDBUrl()} ;`);
}
if (mongoServerConstVal.userUrl) {
pictureDB = await createDbConnect(mongoServerConstVal.pictureUrl).catch(err => {throw err});
process.stdin.emit('picturedbinit success');
}
if (mongoServerConstVal.userUrl) {
logDB = await createDbConnect(mongoServerConstVal.logUrl).catch(err => {throw err});
process.stdin.emit('logdbinit success');
}
tableInit(); tableInit();
} }
export {userDB, pictureDB, logDB}; export {picDB};
\ No newline at end of file \ No newline at end of file
import { httpServer } from "./net/http_server"; import { httpServer } from "./net/http_server";
import { getPort } from "./serverConfig"; import { getPort } from "./serverConfig";
import { psdForPng } from "./util/psd";
async function lanuch() { async function lanuch() {
httpServer.createServer(getPort()); httpServer.createServer(getPort());
psdForPng("1212.psd");
} }
......
import { Schema } from "mongoose"; import { Schema } from "mongoose";
import { logDB } from "../../db/mongo/db_init"; import { picDB } from "../../db/mongo/db_init";
const logSchema = new Schema({ const logSchema = new Schema({
createTime: {type:Number, index: true}, createTime: {type:Number, index: true},
aId: {type: Number} uId: {type: Number, index:true},
logType: Number,
info:String
}); });
let logModel; let logModel;
export function getModel() { export function getModel() {
logModel = logDB.model('log', logSchema); logModel = picDB.model('log', logSchema);
} }
export async function getLogAll() { export async function getAllLog() {
return await logModel.find({}).exec(); return await logModel.find({}).exec();
} }
\ No newline at end of file
export async function addLog() {//todo
}
export async function selectLogByParamater(paramater) { //todo
}
export function getParamater() {//todo
}
import { Schema } from "mongoose"; import { Schema } from "mongoose";
import { pictureDB } from "../db/mongo/db_init"; import { picDB } from "../db/mongo/db_init";
const pictureSchema = new Schema({ const pictureSchema = new Schema({
pId: {type:Number, index: true}, pId: {type:Number, index:true},
pName: {type: String}, pName: {type: String},
path: {type: String} path: {type: String},
chartType:{type:Number, index:true},// 按图表类型分 后续有新的标签类型,就往后加
createTime:{type:Date, index:true}
}); });
let pictureModel; let pictureModel;
export function initModel() { export function initModel() {
pictureModel = pictureDB.model('picture', pictureSchema) pictureModel = picDB.model('picture', pictureSchema)
} }
export async function getPictureAll() { export async function selectAllPicture() {
return await pictureModel.find({}).exec(); return await pictureModel.find({}).exec();
} }
export async function insertPic(picList) { export async function addManyPic(picList) {
return await pictureModel.insertMany(picList); await pictureModel.insertMany(picList);
return true;
}
export async function addOncePic(pId, pName, path, chartType) {
let addInfo = {
pId,
pName,
path,
chartType,
createTIme:new Date()
};
await pictureModel.insert();
return true;
} }
export async function update() {//todo
}
import { Schema } from "mongoose"; import { Schema } from "mongoose";
import { userDB } from "../db/mongo/db_init"; import { picDB } from "../db/mongo/db_init";
const usersSchema = new Schema({ const usersSchema = new Schema({
uId: {type:Number, index: true}, //id uId: {type:Number, index: true}, //id
uName: {type: String}, //管理员账号 uName: {type: String}, //管理员账号
uPwd: {type: String}, //管理员密码 uPwd: {type: String}, //管理员密码
lastOperationTime: {type: Date} //最近操作时间
}); });
let usersModel; let usersModel;
export function initModel() { export function initModel() {
usersModel = userDB.model('users', usersSchema); usersModel = picDB.model('users', usersSchema);
} }
export async function getAdminAll() { export async function selectAllUser() {
return await usersModel.find({}).exec(); return await usersModel.find({}).exec();
}
export async function update() { //todo
}
export async function selectUserById() {//todo
} }
\ No newline at end of file
...@@ -6,11 +6,10 @@ import compression = require('compression'); ...@@ -6,11 +6,10 @@ import compression = require('compression');
import { encryptionReturn } from '../middleware/encryptionReturn'; import { encryptionReturn } from '../middleware/encryptionReturn';
import { getEnv } from '../serverConfig'; import { getEnv } from '../serverConfig';
export class httpServer { export class httpServer {
static createServer(port:number) { static createServer(port:number) {
var httpServer = express(); var httpServer = express();
httpServer.all('*',function (req, res, next) { httpServer.all('*',function (req, res, next) {
res.header('Access-Control-Allow-Origin', req.headers.origin); res.header('Access-Control-Allow-Origin', req.headers.origin);
res.header("Access-Control-Allow-Headers", "X-Requested-With"); res.header("Access-Control-Allow-Headers", "X-Requested-With");
...@@ -39,6 +38,8 @@ export class httpServer { ...@@ -39,6 +38,8 @@ export class httpServer {
httpServer.listen(port); httpServer.listen(port);
console.log('server listen on port:'+port); console.log('server listen on port:'+port);
return httpServer; return httpServer;
} }
......
...@@ -10,10 +10,7 @@ export function getEnv() : string { ...@@ -10,10 +10,7 @@ export function getEnv() : string {
//mongo数据库连接字符 //mongo数据库连接字符
export const mongoServerConstVal = { export const mongoServerConstVal = {
dbUrl:'', picDBUrl:getPicDBUrl,
userUrl: getUserUrl(),
pictureUrl: getPictureUrl(),
logUrl: getLogUrl()
} }
//mysql数据库连接对象 //mysql数据库连接对象
...@@ -24,18 +21,22 @@ export const mySqlConfig = { ...@@ -24,18 +21,22 @@ export const mySqlConfig = {
mysqlPwd: '', mysqlPwd: '',
}; };
export function getPlatform() { //png路径
return process.argv[3] || "guanfang"; export const upImgPathConfig = {
} png:"res/up/png",
jpg:"res/up/jpg",
psd:"res/up/psd",
};
function getUserUrl() { //log路径
return (getEnv(), getPlatform()); export const systemLogPath = {
errorLogFile:"error",
errorLogDir:"error",
handleLogFile:"handle",
handleLogDir:"handle"
} }
function getPictureUrl() { function getPicDBUrl() {
return (getEnv(), getPlatform()); return '';
} }
function getLogUrl() {
return (getEnv(), getPlatform());
}
\ No newline at end of file
export class BizError extends Error { export class BizError extends Error {
//接入日志
} }
\ No newline at end of file
import { systemLogPath } from "../serverConfig";
let log4js = require('log4js');
let path = require('path');
//日志根目录
let baseLogPath = path.resolve(__dirname.substring(0, __dirname.indexOf("out")), 'logs');
let errFile = path.resolve(baseLogPath, systemLogPath.errorLogDir, systemLogPath.errorLogFile);
let handFile =path.resolve(baseLogPath, systemLogPath.handleLogDir, systemLogPath.handleLogFile);
let config = {
appenders:
{
"rule-console": {"type": "console"},
"errorLogger": {
"type": "dateFile", // 日志类型
"filename": errFile, // 输出文件名
"pattern": "-yyyy-MM-dd.log", // 后缀
"alwaysIncludePattern": true, // 上面两个参数是否合并
"encoding": "utf-8", // 编码格式
"maxLogSize": 1000, // 最大存储内容
"numBackups": 3, // 当文件内容超过文件存储空间时,备份文件的数量
"path": `/${systemLogPath.errorLogDir}`
},
"handleLogger": {
"type": "dateFile",
"filename": handFile,
"pattern": "-yyyy-MM-dd.log",
"alwaysIncludePattern": true,
"encoding": "utf-8",
"maxLogSize": 1000,
"numBackups": 3,
"path": `/${systemLogPath.handleLogDir}`
}
},
categories: {
"default": {"appenders": ["rule-console"], "level": "all"}, //这个配置一定要有
"errorLogger": {"appenders": ["errorLogger"], "level": "error"},
"handleLogger": {"appenders": ["handleLogger"], "level": "all"}
},
"baseLogPath": path.resolve(baseLogPath, systemLogPath.handleLogDir, systemLogPath.handleLogFile)
};
log4js.configure(config); //加载配置文件
//调用预先定义的日志名称
let errorLogger = log4js.getLogger("errorLogger");
let handleLogger = log4js.getLogger("handleLogger");
let consoleLogger = log4js.getLogger("rule-console");
//错误日志
export function logError(...errStrs) {
let str = "";
errStrs.forEach(item => {
str += item + " | ";
});
errorLogger.error(`errorInfo => ${str}`);
}
//普通日志
export function logHandle(msgStr:string) {
handleLogger.info(`logInfo => ${msgStr}`);
}
//输出日志
export function logConsole(logStr:string) {
consoleLogger.info(`logInfo => ${logStr}`);
}
import { upImgPathConfig } from "../serverConfig";
import { logError } from "./log";
var PSD = require('node-psd');
const path = require('path');
/**
* psdForPng psd转png
* @param fileName psd文件名称,记得不带.psd
*/
export async function psdForPng(fileName:string) {
const psdName = fileName+".psd";
const pngName = fileName+".png";
let filePath = path.join(__dirname.substring(0,__dirname.indexOf("out")), upImgPathConfig.psd, psdName);
let pngFilePath = path.join(__dirname.substring(0,__dirname.indexOf("out")), upImgPathConfig.png, pngName);
try {
let thisPsd = PSD.fromFile(filePath);
thisPsd.parse()
thisPsd.image.toPng();
PSD.open(filePath).then(function (psd) {
psd.image.saveAsPng(pngFilePath);
});
} catch(err) {
logError( psdName, "转png失败", err.message || err.msg);
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment