Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
sportsschoolserver
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
node_server
sportsschoolserver
Commits
5e2928b7
Commit
5e2928b7
authored
Nov 02, 2021
by
lixinming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
31c998ab
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
426 additions
and
1 deletions
+426
-1
excelEnter.ts
src/cal/excelEnter.ts
+1
-1
cmd.js
src/cmd.js
+165
-0
excelCmd.js
src/excelCmd.js
+260
-0
No files found.
src/cal/excelEnter.ts
View file @
5e2928b7
...
...
@@ -30,7 +30,7 @@ export function planarArrBecomeKeyValueData(dataList, titleInY = false) {
}
export
function
planarArrBecomeChartData
(
dataList
)
{
{
"图表名称"
:{
unit
:
""
,
dataInfo
:[{
key
:
"数据key"
,
value
:
"数据值"
},
{
key
:
"数据key"
,
value
:
"数据值"
}
]
}
}
//
{"图表名称":{unit:"", dataInfo:[{key:"数据key", value:"数据值"}, {key:"数据key", value:"数据值"} ] } }
}
...
...
src/cmd.js
0 → 100644
View file @
5e2928b7
let
fs
=
require
(
'fs'
);
let
apiInfoList
=
[
{
name
:
"FuHuaZaiTi"
,
dataList
:[
{
name
:
"孵化载体"
,
len
:
4
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
4
,
valLen
:
2
,
haveUnit
:
false
},
{
name
:
"孵化载体占比数据"
,
len
:
2
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
5
,
valLen
:
1
,
haveUnit
:
true
},
{
name
:
"孵化载体数量趋势"
,
len
:
11
,
type
:
"柱状"
},
{
name
:
"孵化载体投资主体"
,
len
:
3
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
2
,
valLen
:
2
,
haveUnit
:
false
},
{
name
:
"孵化载体行业分类"
,
len
:
5
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
4
,
valLen
:
2
,
haveUnit
:
false
},
{
name
:
"孵化载体运营"
,
len
:
5
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
2
,
valLen
:
3
,
haveUnit
:
false
},
{
name
:
"平均营收趋势"
,
len
:
7
,
type
:
"柱状"
},
{
name
:
"重要评价指标"
,
len
:
4
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
5
,
valLen
:
3
,
haveUnit
:
false
},
{
name
:
"服务资源"
,
len
:
8
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
10
,
valLen
:
3
,
haveUnit
:
false
},
{
name
:
"政策服务"
,
len
:
2
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
3
,
valLen
:
4
,
haveUnit
:
false
},
{
name
:
"地图数据"
,
len
:
100
,
type
:
"地图"
}
]},
{
name
:
"KeJiJinRong"
,
dataList
:[
{
name
:
"上市企业板块分布"
,
len
:
8
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
4
,
valLen
:
3
,
haveUnit
:
true
},
{
name
:
"科创版企业"
,
len
:
10
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
6
,
valLen
:
2
,
haveUnit
:
true
},
{
name
:
"挂牌企业"
,
len
:
4
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
4
,
valLen
:
2
,
haveUnit
:
false
},
{
name
:
"2020年企业融资情况"
,
len
:
3
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
4
,
valLen
:
2
,
haveUnit
:
false
},
{
name
:
"2020年企业上市情况"
,
len
:
3
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
5
,
valLen
:
2
,
haveUnit
:
false
},
{
name
:
"融资金额趋势"
,
len
:
17
,
type
:
"柱状"
},
{
name
:
"上市企业行业分布"
,
len
:
5
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
4
,
valLen
:
2
,
haveUnit
:
false
},
{
name
:
"创投机构"
,
len
:
4
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
4
,
valLen
:
2
,
haveUnit
:
true
},
{
name
:
"融资企业行业分布"
,
len
:
8
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
7
,
valLen
:
2
,
haveUnit
:
true
},
{
name
:
"企业融资阶段分布"
,
len
:
12
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
6
,
valLen
:
3
,
haveUnit
:
true
},
{
name
:
"金融产品担保方式占比"
,
len
:
7
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
6
,
valLen
:
2
,
haveUnit
:
true
},
{
name
:
"中央球展示数据"
,
len
:
5
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
5
,
valLen
:
3
,
haveUnit
:
true
}
]},
{
name
:
"QiYePeiYu"
,
dataList
:[
{
name
:
"企业特征"
,
len
:
5
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
4
,
valLen
:
3
,
haveUnit
:
false
},
{
name
:
"代表企业"
,
len
:
0
,
type
:
""
},
{
name
:
"海外项目"
,
len
:
7
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
4
,
valLen
:
2
,
haveUnit
:
true
},
{
name
:
"人才引进"
,
len
:
7
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
6
,
valLen
:
4
,
haveUnit
:
true
},
{
name
:
"营业收入TOP5"
,
len
:
5
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
12
,
valLen
:
1
,
haveUnit
:
true
},
{
name
:
"净利润TOP5"
,
len
:
5
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
12
,
valLen
:
1
,
haveUnit
:
true
},
{
name
:
"研发投入TOP5"
,
len
:
5
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
12
,
valLen
:
1
,
haveUnit
:
true
},
{
name
:
"入孵企业数量趋势"
,
len
:
11
,
type
:
"柱状"
},
{
name
:
"孵化器2020入驻企业数量排名"
,
len
:
5
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
10
,
valLen
:
3
,
haveUnit
:
false
},
{
name
:
"运营指标趋势"
,
len
:
17
,
type
:
"柱状"
},
{
name
:
"企业运营情况"
,
len
:
5
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
5
,
valLen
:
3
,
haveUnit
:
true
},
{
name
:
"企业运营概况"
,
len
:
5
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
4
,
valLen
:
5
,
haveUnit
:
true
},
{
name
:
"科技创新"
,
len
:
5
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
4
,
valLen
:
5
,
haveUnit
:
false
},
{
name
:
"发明专利申请与授权数比例"
,
len
:
6
,
type
:
"柱状"
},
{
name
:
"高新技术企业数据概况"
,
len
:
3
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
4
,
valLen
:
3
,
haveUnit
:
true
},
{
name
:
"高新技术企业培育"
,
len
:
5
,
type
:
"柱状"
},
{
name
:
"企业融资"
,
len
:
4
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
4
,
valLen
:
3
,
haveUnit
:
false
},
{
name
:
"2020四季度重大融资事件"
,
len
:
5
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
8
,
valLen
:
3
,
haveUnit
:
true
}
]},
{
name
:
"RongTongHua"
,
dataList
:[
{
name
:
"大中小企业融通发展联盟"
,
len
:
2
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
4
,
valLen
:
3
,
haveUnit
:
false
},
{
name
:
"主要成效"
,
len
:
5
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
10
,
valLen
:
3
,
haveUnit
:
false
},
{
name
:
"创业加速营"
,
len
:
1
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
7
,
valLen
:
1
,
haveUnit
:
false
},
{
name
:
"大企业开放式创新平台"
,
len
:
3
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
3
,
valLen
:
1
,
haveUnit
:
false
},
{
name
:
"大企业服务和成果"
,
len
:
4
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
4
,
valLen
:
2
,
haveUnit
:
false
},
{
name
:
"地图数据"
,
len
:
22
,
type
:
"地图"
}
]},
{
name
:
"ShuangChuangShengTai"
,
dataList
:[
{
name
:
"双创集群"
,
len
:
7
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
8
,
valLen
:
3
,
haveUnit
:
true
},
{
name
:
"孵化器增长趋势"
,
len
:
6
,
type
:
"柱状"
},
{
name
:
"企业培育"
,
len
:
3
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
6
,
valLen
:
3
,
haveUnit
:
true
},
{
name
:
"行业分布"
,
len
:
5
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
4
,
valLen
:
3
,
haveUnit
:
true
},
{
name
:
"张江大中小企业融通发展联盟"
,
len
:
2
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
4
,
valLen
:
2
,
haveUnit
:
false
},
{
name
:
"大企业开放式创新平台"
,
len
:
3
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
6
,
valLen
:
1
,
haveUnit
:
true
},
{
name
:
"科技金融"
,
len
:
3
,
type
:
"键值"
,
strType
:
"c"
,
strLen
:
6
,
valLen
:
3
,
haveUnit
:
true
},
{
name
:
"股权融资趋势"
,
len
:
6
,
type
:
"柱状"
},
{
name
:
"地图数据"
,
len
:
8
,
type
:
"地图"
}
]}
];
function
createBiz
()
{
apiInfoList
.
forEach
(
apiInfo
=>
{
let
path
=
`./biz/
${
apiInfo
.
name
}
.ts`
;
fs
.
access
(
path
,
(
err
)
=>
{
if
(
!
err
)
{
console
.
error
(
path
,
"文件已存在"
);
return
;
}
fs
.
writeFileSync
(
path
,
getBizFileData
(
apiInfo
.
dataList
));
console
.
log
(
path
,
"创建文件成功"
)
});
})
}
function
createRouter
()
{
let
path
=
`./routers/router.ts`
;
fs
.
access
(
path
,
(
err
)
=>
{
if
(
!
err
)
{
console
.
error
(
path
,
"文件已存在"
);
return
;
}
fs
.
writeFileSync
(
path
,
getRouterFileData
(
apiInfoList
));
console
.
log
(
path
,
"创建文件成功"
)
});
}
function
getBizFileData
(
dataList
)
{
let
funStr
=
""
;
let
runFunStr
=
""
;
let
mockFunStr
=
""
;
dataList
.
forEach
(
dataInfo
=>
{
let
subFunStr
=
``
;
switch
(
dataInfo
.
type
)
{
case
"键值"
:
subFunStr
=
`mock键值数据模板(
${
dataInfo
.
len
}
,
${
dataInfo
.
strLen
}
, '
${
dataInfo
.
strType
}
',
${
dataInfo
.
valLen
}
,
${
dataInfo
.
haveUnit
}
)`
;
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
;
}
function
getRouterFileData
(
apiInfoList
)
{
let
importStr
=
""
;
let
listenStr
=
""
;
apiInfoList
.
forEach
(
apiInfo
=>
{
importStr
+=
`import * as
${
apiInfo
.
name
}
Biz from '../biz/
${
apiInfo
.
name
}
';
`
listenStr
+=
` httpServer.get('/
${
apiInfo
.
name
}
', asyncHandler(
${
apiInfo
.
name
}
Biz.getData));
`
})
let
allDataStr
=
`import * as asyncHandler from 'express-async-handler'
${
importStr
}
export function setRouter(httpServer) {
${
listenStr
}
}`
return
allDataStr
;
}
createBiz
();
createRouter
();
\ No newline at end of file
src/excelCmd.js
0 → 100644
View file @
5e2928b7
let
fs
=
require
(
'fs'
);
const
xlsx
=
require
(
'node-xlsx'
);
const
path
=
require
(
'path'
);
//excel的名字
//const excelName = "其他数据模板.xlsx";
// const excelAnalysisName = "其他数据规则.xlsx";
const
excelName
=
"绿色电力数据模板.xlsx"
;
const
excelAnalysisName
=
"绿色电力解析规则.xlsx"
;
let
typeEnum
=
{
"柱状数据"
:
1
,
"列表数据"
:
1
,
"单轴多柱状数据"
:
1
,
"双轴多柱状数据"
:
1
,
}
function
changeDataName
(
str
)
{
let
result
=
str
.
replace
(
/
[
()""“”()
]
/
,
"_"
);
for
(
let
i
=
0
;
i
<
10
;
i
++
)
{
result
=
result
.
replace
(
/
[
()""“”()
]
/
,
"_"
);
}
return
result
;
}
let
createBizAndDataConfigMap
=
{
// "page1": {
// sheetName:"智慧电眼_电力用户数",
// apiList:[
// { type:"键值数据", dataName:"基础数据", title:"基础数据", unit:"inData", total:true, percent:false},
// { type:"双轴多柱状数据", dataName:"用电趋势", title:"用电趋势", unit:{"用户数":"家", "空置率":"%"}, total:true, percent:false},
// { type:"柱状数据", dataName:"用电排序趋势", title:"用电排序趋势", unit:"户", total:true, percent:false},
// { type:"柱状数据", dataName:"企业生产指数", title:"企业生产指数", unit:"户", total:true, percent:false}
// ]
// }
};
//配置解析excel
function
analysisConfigExcel
()
{
const
workSheetsFromFile
=
xlsx
.
parse
(
`../res/
${
excelAnalysisName
}
`
);
let
sheetMap
=
{};
let
sheetList
=
[];
for
(
let
i
=
0
;
i
<
workSheetsFromFile
.
length
;
i
++
)
{
let
sheetInfo
=
workSheetsFromFile
[
i
];
sheetMap
[
sheetInfo
.
name
]
=
sheetInfo
.
data
;
sheetList
.
push
(
sheetInfo
);
}
return
sheetMap
}
function
createConfig
()
{
let
excelData
=
analysisConfigExcel
();
for
(
let
configSheetName
in
excelData
)
{
let
data
=
excelData
[
configSheetName
];
for
(
let
y
=
1
;
y
<
data
.
length
;
y
++
)
{
let
valueList
=
data
[
y
];
let
pageName
=
valueList
[
0
];
let
sheetName
=
valueList
[
1
];
let
type
=
valueList
[
2
];
let
dataName
=
changeDataName
(
valueList
[
3
]);
let
title
=
valueList
[
4
];
let
unit
=
valueList
[
5
];
let
total
=
valueList
[
6
];
let
percent
=
valueList
[
7
];
let
titleList
=
valueList
[
8
]
?
JSON
.
parse
(
valueList
[
8
])
:
""
;
let
keyValueObj
=
valueList
[
9
]
?
JSON
.
parse
(
valueList
[
9
])
:
""
;
if
(
!
createBizAndDataConfigMap
[
pageName
]
)
createBizAndDataConfigMap
[
pageName
]
=
{
sheetName
,
apiList
:[]};
createBizAndDataConfigMap
[
pageName
].
apiList
.
push
({
type
,
dataName
,
title
,
unit
,
total
,
percent
,
titleList
,
keyValueObj
});
}
}
}
createConfig
();
//创建data层
function
createData
()
{
let
str
=
`
import * as path from "path";
import * as fs from "fs";
import { BizError } from "../util/bizError";
import { limitEnteNameString, changeDataName } from "../util/tools";
import { getExcelDataBySheetName, analysisExcelDataOfObject, analysisExcelDataOfMoreObject, analysisExcelDataOfList } from "../util/analysisExcel";`
;
for
(
let
pangeName
in
createBizAndDataConfigMap
)
{
let
{
sheetName
}
=
createBizAndDataConfigMap
[
pangeName
];
let
ofMoreObjList
=
[];
let
ofObjList
=
[];
let
listDataAnalysisInfo
=
{};
createBizAndDataConfigMap
[
pangeName
].
apiList
.
forEach
(
info
=>
{
if
(
info
.
type
==
"双轴多柱状数据"
||
info
.
type
==
"单轴多柱状数据"
)
ofMoreObjList
.
push
(
info
.
dataName
);
else
if
(
info
.
type
==
"列表数据"
)
listDataAnalysisInfo
[
info
.
dataName
]
=
{
titleList
:
info
.
titleList
,
keyValueObj
:
info
.
keyValueObj
};
else
ofObjList
.
push
(
info
.
dataName
);
});
str
+=
`
export function get
${
sheetName
}
() {;
let bolckDataList = getExcelDataBySheetName('
${
excelName
}
', '
${
sheetName
}
');
let result = {};
let ofMoreObjList =
${
JSON
.
stringify
(
ofMoreObjList
)}
;
let ofObjList =
${
JSON
.
stringify
(
ofObjList
)}
;
let listDataAnalysisInfo =
${
JSON
.
stringify
(
listDataAnalysisInfo
)}
;
for (let i = 0; i < bolckDataList.length; i++) {
let {blockData, blockTitle} = bolckDataList[i];
let changeName = changeDataName(blockTitle);
if (ofMoreObjList.indexOf(changeName) > -1) result[changeName] = analysisExcelDataOfMoreObject(blockData, false);
if (ofObjList.indexOf(changeName) > -1) result[changeName] = analysisExcelDataOfObject(blockData, true, false);
if (listDataAnalysisInfo[changeName]) result[changeName] = analysisExcelDataOfList(blockData, listDataAnalysisInfo[blockTitle].keyValueObj, false);
}
return result;
}`
;
}
let
path
=
`./data/analysisExcelData.ts`
;
fs
.
access
(
path
,
(
err
)
=>
{
if
(
!
err
)
{
console
.
error
(
path
,
"文件已存在"
);
return
;
}
fs
.
writeFileSync
(
path
,
str
);
console
.
log
(
path
,
"创建文件成功"
)
});
}
//创建biz层
function
createBiz
(){
for
(
let
pageName
in
createBizAndDataConfigMap
)
{
let
{
apiList
,
sheetName
}
=
createBizAndDataConfigMap
[
pageName
];
let
thisBizData
=
getBizStr
(
apiList
,
sheetName
);
let
path
=
`./biz/
${
pageName
}
.ts`
;
fs
.
access
(
path
,
(
err
)
=>
{
if
(
!
err
)
{
console
.
error
(
path
,
"文件已存在"
);
return
;
}
fs
.
writeFileSync
(
path
,
thisBizData
);
console
.
log
(
path
,
"创建文件成功"
)
});
}
}
function
getBizStr
(
apiList
,
sheetName
)
{
let
str
=
`
import { getChartData, getKeyValue, getListData, getSingleYAndMoreData, getMoreYChartData, objKeyReplace }from "../util/tools";
import { get
${
sheetName
}
} from "../data/analysisExcelData";
`
;
str
+=
`
export function getData(req, res) {
let ret:any = {};
let excelData:any = get
${
sheetName
}
();
`
;
apiList
.
forEach
((
info
,
index
)
=>
{
let
{
dataName
,
unit
,
total
,
percent
,
type
,
titleList
,
keyValueObj
}
=
info
;
const
apiName
=
`api
${
index
+
1
}
`
;
let
subStr
;
let
chartUnit
;
switch
(
type
)
{
case
"键值数据"
:
subStr
=
`
let
${
dataName
}
DataAndUnit = objKeyReplace(excelData.
${
dataName
}
);`
;
if
(
unit
==
'inData'
)
{
subStr
+=
`
ret["
${
apiName
}
"] = getKeyValue("
${
dataName
}
",
${
dataName
}
DataAndUnit.dataMap,
${
dataName
}
DataAndUnit.unitMap,
${
total
}
,
${
percent
}
);`
;
}
else
{
subStr
+=
`
ret["
${
apiName
}
"] = getKeyValue("
${
dataName
}
",
${
dataName
}
DataAndUnit.dataMap,
${
typeof
unit
==
'boolean'
?
unit
:
`'
${
unit
}
'`
}
,
${
total
}
,
${
percent
}
);`
;
}
break
;
case
"柱状数据"
:
chartUnit
=
typeof
unit
==
'boolean'
?
unit
:
`'
${
unit
}
'`
;
subStr
=
`
ret["
${
apiName
}
"] = getChartData("
${
dataName
}
", excelData.
${
dataName
}
,
${
chartUnit
}
,
${
percent
}
);`
;
break
;
case
"列表数据"
:
subStr
=
`
ret["
${
apiName
}
"] = getListData("
${
dataName
}
",excelData.
${
dataName
}
,
${
JSON
.
stringify
(
titleList
)}
,
${
JSON
.
stringify
(
keyValueObj
)}
);`
;
break
;
case
"单轴多柱状数据"
:
chartUnit
=
typeof
unit
==
'boolean'
?
unit
:
`'
${
unit
}
'`
;
subStr
=
`
ret["
${
apiName
}
"] = getSingleYAndMoreData("
${
dataName
}
", excelData.
${
dataName
}
,
${
percent
}
,
${
chartUnit
}
);`
;
break
;
case
"双轴多柱状数据"
:
subStr
=
`
ret["
${
apiName
}
"] = getMoreYChartData("
${
dataName
}
", excelData.
${
dataName
}
,
${
percent
}
,
${
unit
}
)`
;
break
;
};
str
+=
`
${
subStr
}
`
});
str
+=
`
res.send(ret);
}
`
return
str
;
}
//创建Router层
function
createRouter
()
{
let
importName
=
``
;
let
routergetName
=
``
;
let
routerpostName
=
``
;
for
(
let
pageName
in
createBizAndDataConfigMap
)
{
importName
+=
`
import * as
${
pageName
}
Biz from '../biz/
${
pageName
}
';`
;
routergetName
+=
`
httpServer.get('/
${
pageName
}
', asyncHandler(
${
pageName
}
Biz.getData));`
;
routerpostName
+=
`
httpServer.post('/
${
pageName
}
', asyncHandler(
${
pageName
}
Biz.getData));`
;
}
let
str
=
`
import * as asyncHandler from 'express-async-handler'
${
importName
}
export function setRouter(httpServer){
${
routergetName
}
${
routerpostName
}
}`
;
let
path
=
`./routers/router.ts`
;
fs
.
access
(
path
,
(
err
)
=>
{
if
(
!
err
)
{
console
.
error
(
path
,
"文件已存在"
);
return
;
}
fs
.
writeFileSync
(
path
,
str
);
console
.
log
(
path
,
"创建router文件成功"
)
});
}
createData
();
createBiz
();
createRouter
();
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment