This commit is contained in:
yulixing 2019-06-27 10:35:29 +08:00
parent 367dc4881a
commit dd38c92ec3
4 changed files with 76 additions and 46 deletions

View File

@ -31,6 +31,7 @@
"express-session": "^1.16.1",
"express-validator": "^5.3.1",
"file-stream-rotator": "^0.4.1",
"fontmin": "^0.9.7-beta",
"form-data": "^2.3.3",
"fs-extra": "^8.0.0",
"glob": "^7.1.4",

View File

@ -1,80 +1,82 @@
import { Router } from 'express';
import FormData from 'form-data';
import request from 'request';
import fs from 'fs';
import path from 'path';
import painter from '../../utils/painter';
import config from '../../../config/config';
const router = new Router();
import {Router} from 'express'
import request from 'request'
import fs from 'fs'
import path from 'path'
import painter from '../../utils/painter'
import config from '../../../config/config'
import Template from '../../models/mp_share/Template'
const router = new Router()
// 生成预览图
router.post('/get_pic', async (req, res, next) => {
const body = req.body;
const opt = body.opt;
const body = req.body
const opt = body.opt
try {
const imgTempName = await painter(opt);
const imgTempPath = path.join(__dirname, '../../temp/' + imgTempName);
const imgTempName = await painter(opt)
const imgTempPath = path.join(__dirname, '../../temp/' + imgTempName)
// 生成后上传、删除
const formData = {
'image-file': fs.createReadStream(imgTempPath),
sub_path: '/mp-share/',
file_type: 'mp_share'
};
file_type: 'mp_share',
}
request.post(
{
url: config.host + '/api/mp_share/imgs/upload',
formData: formData,
headers: {
authorization: `${req.headers.authorization}`
}
authorization: `${req.headers.authorization}`,
},
},
function(uploadErr, uploadRes, uploadBody) {
fs.unlink(imgTempPath, function(err) {
if (err) {
console.log(err);
console.log(err)
}
});
})
if (uploadErr) {
next(uploadErr);
return;
next(uploadErr)
return
}
res.send(uploadBody);
res.send(uploadBody)
}
);
)
} catch (err) {
next(err);
next(err)
}
});
})
// 保存模板
router.post('/save_tpl', async (req, res, next) => {
const body = req.body
const tpl = body.tpl
try {
const searchRes = await Template.findOne({tpl_id: tpl.tpl_id})
if (searchRes) {
res.send({
errcode: 1,
errmsg: '模板ID已存在',
})
return
}
tpl.createdBy = req.user.username || ''
const result = await Template.save(tpl)
res.send({
errcode: 0,
})
} catch (err) {
next(err)
}
})
// 修改模板
// 删除模板
// 查询单个模板
// 获取模板列表
export default router;
export default router

View File

@ -1,21 +1,21 @@
import {Router} from 'express'
import path from 'path'
import cors from 'cors'
import Fontmin from 'fontmin'
const router = new Router()
const whitelist = ['https://servicewechat.com']
const corsOptions = {
origin: function (origin, callback) {
origin: function(origin, callback) {
if (whitelist.indexOf(origin) !== -1) {
callback(null, true)
} else {
callback(new Error('Not allowed by CORS'))
}
}
},
}
router.get('/get_font', cors(), async (req, res, next) => {
const query = req.query
const font_name = query.font_name
@ -25,4 +25,31 @@ router.get('/get_font', cors(), async (req, res, next) => {
res.download(fontPath)
})
router.get('/fontmin', cors(),async (req, res, next) => {
const query = req.query
const {text, font_name, ext} = query
console.log(text)
const fontPath = path.join(__dirname, `../../fonts/${font_name}.${ext}`)
const fontmin = new Fontmin().src(fontPath).use(
Fontmin.glyph({
text: text,
hinting: false,
})
)
fontmin.run(function(err, files) {
if (err) {
console.log(err)
next(err)
return
}
const data = files[0].contents
res.writeHead(200, {
'Content-Type': 'application/vnd.ms-fontobject',
'Content-disposition': `attachment;filename=${font_name}.${ext}`,
'Content-Length': data.length,
})
res.end(data)
})
})
export default router

View File

@ -6,7 +6,7 @@ const ObjectId = Schema.Types.ObjectId;
/**
* 操作日志
*/
const OpLog = new mongoose.Schema({
const Template = new mongoose.Schema({
// 游戏id
tpl_name: {type: String},
tpl_id: {type: String},