fontmin
This commit is contained in:
parent
367dc4881a
commit
dd38c92ec3
@ -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",
|
||||
|
@ -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
|
||||
|
@ -1,20 +1,20 @@
|
||||
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
|
||||
@ -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
|
||||
|
@ -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},
|
||||
|
Loading…
x
Reference in New Issue
Block a user