Commit a5081157 by chenjinjing

路由

parent 4a14c245
import * as path from "path";
import * as fs from "fs";
import { BizError } from "../util/bizError";
import { limitEnteNameString } from "../util/tools";
import { getExcelDataBySheetName, analysisExcelDataOfObject } from "../util/analysisExcel";
export function getsheet1() {;
let bolckDataList = getExcelDataBySheetName('数据模板', 'sheet1');
let result = {};
for (let i = 0; i < bolckDataList.length; i++) {
let {blockData, blockTitle} = bolckDataList[i];
let analysisData = analysisExcelDataOfObject(blockData, true, true);
result[blockTitle] = analysisData;
}
return result;
}
export function getsheet2() {;
let bolckDataList = getExcelDataBySheetName('数据模板', 'sheet2');
let result = {};
for (let i = 0; i < bolckDataList.length; i++) {
let {blockData, blockTitle} = bolckDataList[i];
let analysisData = analysisExcelDataOfObject(blockData, true, true);
result[blockTitle] = analysisData;
}
return result;
}
\ No newline at end of file
......@@ -2,9 +2,27 @@ let fs = require('fs');
//excel的名字
const excelName = "数据模板";
let sheetNameList = ["sheet1", "sheet2"];
let RoutersheetNameList=[
{name:"api1",dataList:[ //name:名称,len:长度,type:类型,haveUnit:是否有单位
{name:"sheet1",len:7,type:"键值",haveUnit:true},
{name:"sheet2",len:3,type:"柱状",haveUnit:true},
{name:"sheet3",len:8,type:"键值",haveUnit:true},
{name:"sheet4",len:7,type:"键值",haveUnit:true},
{name:"sheet5",len:5,type:"地图",haveUnit:true}
]},
{name:"api2",dataList:[
{name:"sheet1",len:6,type:"键值",haveUnit:true},
{name:"sheet2",len:1,type:"柱状",haveUnit:true},
{name:"sheet3",len:3,type:"柱状",haveUnit:true},
]},
{name:"api3",dataList:[
{name:"sheet1",len:5,type:"地图",haveUnit:true},
{name:"sheet2",len:6,type:"键值",haveUnit:true}
]}
]
//创建data层
function createData() {
let str = `
......@@ -45,11 +63,115 @@ function createData() {
});
}
//创建Router层
function createRouter() {
let path = `./routers/router.ts`;
fs.access(path, (err) => {
if (!err) {
console.error(path, "文件已存在");
return;
}
fs.writeFileSync(path, getRouterData(RoutersheetNameList));
console.log(path, "创建router文件成功")
});
}
function getRouterData(apiList){
let importName="";
let routergetName="";
let routerpostName="";
createData();
apiList.forEach(apiInfo => {
importName+=`
import * as ${apiInfo.name}Biz from '../biz/${apiInfo.name}';
`
routergetName+=`
httpServer.get('/${apiInfo.name}', asyncHandler(${apiInfo.name}Biz.getData));
`
routerpostName+=`
httpServer.post('/${apiInfo.name}', asyncHandler(${apiInfo.name}Biz.getData));
`
});
let str=`
import * as asyncHandler from 'express-async-handler'
${importName}
export function srtRouter(httpServer){
${routergetName}
${routerpostName}
}`
return str;
}
//创建biz层
function createBiz(){
RoutersheetNameList.forEach(apiInfo=>{
let path = `./biz/${apiInfo.name}.ts`;
fs.access(path, (err) => {
if (!err) {
console.error(path, "文件已存在");
return;
}
fs.writeFileSync(path, getBizData(apiInfo.dataList));
console.log(path, "创建biz文件成功")
});
})
}
function getBizData(dataList){
let funStr="";
let runFunStr="";
dataList.forEach(dataInfo=>{
let subFunStr=``;
switch(dataInfo.type){
case "键值":
subFunStr=`mock键值数据模板(${dataInfo.len})`;
break;
case "键值":
subFunStr=`mock柱状数据模板(${dataInfo.len})`;
break;
case "键值":
subFunStr=`mock地图数据模板(${dataInfo.len})`;
break;
};
funStr+=
`function get${dataInfo.name}(){
return ${subFunStr};
}
`;
runFunStr+=
` ret["${dataInfo.name}"]=get${dataInfo.name}();
`
});
let allData=
`import { mock键值数据模板,mock柱状图数据模板,mock地图数据模板 } from "../util/mockData";
export async function getData(req, res){
let ret:any = {};
${runFunStr}
res.send(ret);
}
${funStr}
`
return allData;
}
createData();
createRouter();
createBiz();
//创建 biz层
export function setRouter(httpServer) {
}
\ No newline at end of file
import * as asyncHandler from 'express-async-handler'
import * as api1Biz from '../biz/api1';
import * as api2Biz from '../biz/api2';
export function srtRouter(httpServer){
httpServer.get('/api1', asyncHandler(api1Biz.getData));
httpServer.get('/api2', asyncHandler(api2Biz.getData));
httpServer.post('/api1', asyncHandler(api1Biz.getData));
httpServer.post('/api2', asyncHandler(api2Biz.getData));
}
\ 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