Commit 85170ee7 by lixinming

no message

parent 2444d933
#!/usr/bin/env node
/**
* Module dependencies.
*/
var app = require('../app');
var debug = require('debug')('data-server:server');
var http = require('http');
/**
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
/**
* Create HTTP server.
*/
var server = http.createServer(app);
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
/**
* Normalize a port into a number, string, or false.
*/
function normalizePort(val) {
var port = parseInt(val, 10);
if (isNaN(port)) {
// named pipe
return val;
}
if (port >= 0) {
// port number
return port;
}
return false;
}
/**
* Event listener for HTTP server "error" event.
*/
function onError(error) {
if (error.syscall !== 'listen') {
throw error;
}
var bind = typeof port === 'string'
? 'Pipe ' + port
: 'Port ' + port;
// handle specific listen errors with friendly messages
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges');
process.exit(1);
break;
case 'EADDRINUSE':
console.error(bind + ' is already in use');
process.exit(1);
break;
default:
throw error;
}
}
/**
* Event listener for HTTP server "listening" event.
*/
function onListening() {
var addr = server.address();
var bind = typeof addr === 'string'
? 'pipe ' + addr
: 'port ' + addr.port;
debug('Listening on ' + bind);
}
\ No newline at end of file
......@@ -427,6 +427,11 @@
"assert-plus": "^1.0.0"
}
},
"date-format": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz",
"integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w=="
},
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
......@@ -614,6 +619,11 @@
"unpipe": "~1.0.0"
}
},
"flatted": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
"integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA=="
},
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz",
......@@ -630,9 +640,9 @@
}
},
"formidable": {
"version": "1.2.2",
"resolved": "https://registry.npm.taobao.org/formidable/download/formidable-1.2.2.tgz",
"integrity": "sha1-v2muopcpgmdfAIZTQrmCmG9rjdk="
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz",
"integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ=="
},
"forwarded": {
"version": "0.2.0",
......@@ -649,6 +659,16 @@
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
},
"fs-extra": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
"integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
"requires": {
"graceful-fs": "^4.2.0",
"jsonfile": "^4.0.0",
"universalify": "^0.1.0"
}
},
"getpass": {
"version": "0.1.7",
"resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz",
......@@ -657,6 +677,11 @@
"assert-plus": "^1.0.0"
}
},
"graceful-fs": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
},
"har-schema": {
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz",
......@@ -788,6 +813,14 @@
"resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz",
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
},
"jsonfile": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
"integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
"requires": {
"graceful-fs": "^4.1.6"
}
},
"jsprim": {
"version": "1.4.1",
"resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz",
......@@ -809,6 +842,33 @@
"resolved": "https://registry.npm.taobao.org/kitx/download/kitx-1.3.0.tgz",
"integrity": "sha1-qz7nxZjSsdYp/VVWj4aMREDCAOo="
},
"log4js": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz",
"integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==",
"requires": {
"date-format": "^3.0.0",
"debug": "^4.1.1",
"flatted": "^2.0.1",
"rfdc": "^1.1.4",
"streamroller": "^2.2.4"
},
"dependencies": {
"debug": {
"version": "4.3.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
"integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
"requires": {
"ms": "2.1.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
"lru-cache": {
"version": "4.1.5",
"resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz",
......@@ -1202,6 +1262,11 @@
"resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-2.0.0.tgz",
"integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
},
"rfdc": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
"integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA=="
},
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz",
......@@ -1327,6 +1392,36 @@
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
},
"streamroller": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz",
"integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==",
"requires": {
"date-format": "^2.1.0",
"debug": "^4.1.1",
"fs-extra": "^8.1.0"
},
"dependencies": {
"date-format": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz",
"integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA=="
},
"debug": {
"version": "4.3.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
"integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
"requires": {
"ms": "2.1.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
"streamsearch": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
......@@ -1394,6 +1489,11 @@
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
"universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
},
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
......
......@@ -11,7 +11,8 @@
"express": "^4.17.1",
"express-async-handler": "^1.1.4",
"express-history-api-fallback": "^2.2.1",
"formidable": "^1.2.1",
"formidable": "^1.2.6",
"log4js": "^6.3.0",
"lru-cache": "^4.1.5",
"md5": "^2.2.1",
"moment": "^2.24.0",
......
import { addOncePic, selectAllPicture, selectPicById, selectPicList, update } from "../model/picture";
import { selectUserByLogin } from "../model/users";
import { upImgPathConfig } from "../serverConfig";
import { isDirExists } from "../util/filesService";
import { psdForPng } from "../util/psd";
const multer = require('multer');
const bodyParser = require('body-parser');
const express = require('express');
const app = express();
import formidable = require('formidable');
import { upImgPathConfig } from '../serverConfig';
import * as crypto from 'crypto';
const path = require('path');
// const dir = upImgPathConfig.psd;
// let files = fs.readdirSync(dir);
let ret:any = {};
export async function up(req, res) {
let picList = [];
let pngName = psdForPng(req.query.pName);
picList.push({
pId: parseInt(req.query.pId),
uId: req.query.uId,
uName: req.query.uName,
psdName: req.query.pName,
pngName,
path: req.query.path,
chartType: req.query.chartType,
createTime: new Date()
});
ret["up"] = await addOncePic(picList);
res.send(ret);
}
export async function down(req, res) {
let pId = req.query.pId;
ret["down"] = await selectPicById(pId);
res.send(ret);
}
//上传psd文件
export async function upPsdFile(req) {
export async function changePic(req, res) {
let pId = parseInt(req.query.pId);
let picList = [];
picList.push({
psdName: req.query.pName,
path: req.query.path,
chartType: req.query.chartType,
createTime: new Date()
});
let result = await up(req, getFileName());
console.log(result);
//上传成功通过fs改名称
return {}
ret["changePic"] = await update(pId, picList);
res.send(ret);
}
export async function picLict(req, res) {
ret["picLict"] = await selectPicList();
res.send(ret);
function up(req, fileName) {
let form = new formidable.IncomingForm();
let psdUrl = path.join(__dirname.substring(0,__dirname.indexOf("out")), upImgPathConfig.psd);
form.uploadDir = psdUrl;
form.name = fileName
return new Promise((resolve, reject) => {
form.parse(req, (err, fields, files) => {
if (err) reject(err);
else resolve(files);
});
});
}
export async function uploadImg(fileFilter, storage) {
let imageUploader = multer({
fileFilter,
storage,
}).single("file");
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json())
app.post("/upload", imageUploader, (req, res) => {
res.send("上传成功");
});
function getFileName() {
let randomStr = Math.ceil(Math.random()* 10000000) + '' +new Date().valueOf();
const md5 = crypto.createHash('md5');
let fileNameMd5 = md5.update(randomStr);
return fileNameMd5+'.psd';
}
import { Query } from "mongoose";
import { addOnceUser, selectUserById, selectUserByLogin, update } from "../model/users";
let ret:any = {};
export async function login(req, res) {
let uName = req.query.uName;
let uPwd = req.query.uPwd;
ret["login"] = await selectUserByLogin(uName, uPwd);
res.send(ret);
import * as usersData from "../model/users";
import { BizError } from "../util/bizError";
import * as crypto from 'crypto';
export async function login(loginId, pwd) {
let userInfo = await usersData.selectUserByLoginId(loginId);
if (!userInfo) throw new BizError("账号不存在");
if (userInfo.uPwd != pwd) throw new BizError("密码不正确");
return userInfo;
}
export async function changePwd(req, res) {
let uId = req.query.uId;
let userInfo = {
uName : req.query.uName,
uPwd : req.query.uPwd
}
ret["changePwd"] = await update(uId, userInfo);
res.send(ret);
export async function changePwd(userId:number, uPwd:string) {
let userInfo = await usersData.selectUserById(userId);
userInfo.uPwd = uPwd;
userInfo.save();
return {msg:"修改成功"};
}
export async function register(uName, loginId, pwd) {
let userInfo = await usersData.selectUserById(loginId);
if (userInfo) throw new BizError("登录账号已存在 请重新设置");
let randomStr = Math.ceil(Math.random()* 10000000) + '' +new Date().valueOf();
const md5 = crypto.createHash('md5');
let userId = md5.update(randomStr);
await usersData.addOnceUser(userId, uName, loginId, pwd);
export async function register(req, res) {
let addInfo = {
uName: req.query.uName,
uPwd: req.query.uPwd,
uImg: req.query.uImg
}
ret["registerUser"] = await addOnceUser(addInfo);
res.send(ret);
//todo 先写死,后面完善
return {success:true};
}
......@@ -2,69 +2,37 @@ import { rejects } from "assert";
import { resolve } from "dns";
import { Schema } from "mongoose";
import { picDB } from "../db/mongo/db_init";
const bcrypt = require('bcrypt');
const usersSchema = new Schema({
uId: {type:Number, index: true}, //id
uName: {type: String}, //管理员账号
uId: {type:String, index: true}, //id
loginId:{type:String, index:true},//管理员账号
uName: {type: String}, //管理员名称
uPwd: {type: String}, //管理员密码
uImg: {type: String}, //头像
});
let usersModel;
export function initModel() {
usersModel = picDB.model('users', usersSchema);
}
export async function selectAllUser() {
return await usersModel.find({}).exec();
}
export async function update(uId, userInfo) { //todo
// await usersModel.findById(uId, paramater);
// return true;
await usersModel.findById(uId, (err, doc) => {
doc = userInfo;
doc.save((err) => {
if(!err) {
console.log('修改成功');
return true;
} else {
console.log('Error:' + err);
}
})
})
return false;
}
export async function selectUserById(uId) {//todo
export async function selectUserById(uId) {
let query = {uId: uId};
return await usersModel.find(query).exec();
}
export async function selectUserByLogin(uName, uPwd) {//todo
let query = {uName: uName, uPwd: uPwd};
return await usersModel.find(query).exec();
export async function selectUserByLoginId(loginId) {
return await usersModel.find( {loginId}).exec();
}
export async function addOnceUser(addInfo) {
// addInfo = {
// uId : 1,
// uName : '陈某',
// uPwd : '123456'
// }
// await usersModel.insert(addInfo);
// return true;
await usersModel.save((err, doc) => {
doc = addInfo;
if (!err) {
console.log('保存成功');
return true;
} else {
console.log('Error:' + err);
}
})
return false;
export async function addOnceUser(uId, loginId, uName, uPwd) {
let userInfo:any = {loginId, uName, uPwd, uId};
return await usersModel.create(userInfo);
}
import * as asyncHandler from 'express-async-handler';
import * as picBiz from '../biz/pic';
export function setRouter(httpServer) {
httpServer.post('/api/pic/up', asyncHandler(upFile));
httpServer.post('/api/pic/list', asyncHandler(fileList));
}
async function upFile(req, res) {
picBiz.upPsdFile(req);
}
async function fileList(req, res) {
}
\ No newline at end of file
import * as asyncHandler from 'express-async-handler'
import * as dataListBiz from '../biz/dataList'
import * as userBiz from '../biz/user'
import * as picBiz from '../biz/pic'
import * as userRouters from './user'
import * as picRouters from './pic'
export function setRouter(httpServer) {
httpServer.get('/datalist', asyncHandler(dataListBiz.getData));
httpServer.get('/up', asyncHandler(picBiz.up));
httpServer.post('/up', asyncHandler(picBiz.up));
httpServer.get('/down', asyncHandler(picBiz.down));
httpServer.post('/down', asyncHandler(picBiz.down));
httpServer.get('/picLict', asyncHandler(picBiz.picLict));
httpServer.post('/picLict', asyncHandler(picBiz.picLict));
httpServer.get('/uploadImg', asyncHandler(picBiz.uploadImg));
httpServer.post('/uploadImg', asyncHandler(picBiz.uploadImg));
httpServer.get('/registerUser', asyncHandler(userBiz.register));
httpServer.post('/registerUser', asyncHandler(userBiz.register));
httpServer.get('/changePwd', asyncHandler(userBiz.changePwd));
httpServer.post('/changePwd', asyncHandler(userBiz.changePwd));
httpServer.get('/login', asyncHandler(userBiz.login));
httpServer.post('/login', asyncHandler(userBiz.login));
userRouters.setRouter(httpServer);
picRouters.setRouter(httpServer);
}
\ No newline at end of file
import * as asyncHandler from 'express-async-handler';
import * as userBiz from './../biz/user'
export function setRouter(httpServer) {
httpServer.post('/api/user/login', asyncHandler(login));
httpServer.post('/api/user/register', asyncHandler(register));
}
async function login(req, res) {
let loginId = req.body.loginId;
let pwd = req.body.pwd;
let userInfo = await userBiz.login(loginId, pwd);
res.success(userInfo);
}
async function register(req, res) {
let loginId = req.body.loginId;
let pwd = req.body.pwd;
let uName = req.body.name;
let userInfo = await userBiz.register(uName, loginId, pwd);
res.success(userInfo);
}
//todo 修改密码自己写
\ No newline at end of file
import { upImgPathConfig } from "../serverConfig";
import { BizError } from "./bizError";
import { logError } from "./log";
var PSD = require('node-psd');
const path = require('path');
/**
......
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