|
|
|
|
const express = require('express'); //引入express
|
|
|
|
|
const Mock = require('mockjs'); //引入mock
|
|
|
|
|
const fs = require('fs');
|
|
|
|
|
const app = express(); //实例化express
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const {
|
|
|
|
|
routerLog,
|
|
|
|
|
writeLog
|
|
|
|
|
} = require('./writeLog');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app.use(function(req, res, next) {
|
|
|
|
|
res.header("Access-Control-Allow-Origin", "*");
|
|
|
|
|
res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
|
|
|
|
|
res.header("Access-Control-Allow-Headers", "X-Requested-With");
|
|
|
|
|
res.header('Access-Control-Allow-Headers', 'Content-Type');
|
|
|
|
|
next();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fs.writeFile('./routerLog.md', ' \n # 路由 \n', function(error) {
|
|
|
|
|
if (error) {
|
|
|
|
|
console.log('写入失败')
|
|
|
|
|
} else {
|
|
|
|
|
console.log('markdown 写入路由记录')
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
const directory = './data/';
|
|
|
|
|
loopPath(directory);
|
|
|
|
|
//循环目录
|
|
|
|
|
function loopPath(directory) {
|
|
|
|
|
const paths = fs.readdirSync(directory);
|
|
|
|
|
let logs = "";
|
|
|
|
|
for (let i = 0; i < paths.length; i++) {
|
|
|
|
|
const file = directory + paths[i];
|
|
|
|
|
if (isDirectory(file)) {
|
|
|
|
|
const subDirectory = file + "/";
|
|
|
|
|
loopPath(subDirectory);
|
|
|
|
|
} else {
|
|
|
|
|
if (fs.existsSync(`${file}`)) {
|
|
|
|
|
const dataConfigs = require(`${file}`);
|
|
|
|
|
// console.log('dataConfigs', dataConfigs);
|
|
|
|
|
|
|
|
|
|
const configs = dataConfigs.routerConfigs;
|
|
|
|
|
const baseUrl = dataConfigs.basicRouteUrl;
|
|
|
|
|
logs += `\n ## 路由 --- ${dataConfigs.basicRouteName} \n\n`;
|
|
|
|
|
for (let i = 0; i < configs.length; i++) {
|
|
|
|
|
configs[i].responseExample = JSON.stringify(
|
|
|
|
|
FormatMockData({
|
|
|
|
|
data: configs[i].mockData
|
|
|
|
|
})
|
|
|
|
|
);
|
|
|
|
|
logs += routerLog(configs[i]);
|
|
|
|
|
const { url, type } = configs[i];
|
|
|
|
|
const mockUrl = "/" + baseUrl + url;
|
|
|
|
|
console.log("路由信息:", "url:", mockUrl, "type:", type);
|
|
|
|
|
loopRouteConfig(mockUrl, configs[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
writeLog(logs);
|
|
|
|
|
}
|
|
|
|
|
// 注册路由
|
|
|
|
|
function loopRouteConfig(mockUrl, { type, mockData }) {
|
|
|
|
|
app[type](mockUrl, function(req, res) {
|
|
|
|
|
res.json(
|
|
|
|
|
FormatMockData({
|
|
|
|
|
mockData
|
|
|
|
|
})
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 是否为目录
|
|
|
|
|
function isDirectory(directory) {
|
|
|
|
|
return fs.lstatSync(directory).isDirectory() ? true : false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// mock 模拟数据 mock json
|
|
|
|
|
function FormatMockData({ mockData }) {
|
|
|
|
|
const status200 = { code: 0, message: "成功" };
|
|
|
|
|
return {
|
|
|
|
|
...status200,
|
|
|
|
|
...Mock.mock(mockData)
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
app.listen('8090', () => {
|
|
|
|
|
console.log('mock 模拟地址 :http://localhost:8090/')
|
|
|
|
|
})
|