linwenxin hace 7 meses
padre
commit
835dd7698a
Se han modificado 1 ficheros con 54 adiciones y 6 borrados
  1. 54 6
      src/parsingInterface.js

+ 54 - 6
src/parsingInterface.js

@@ -2,7 +2,7 @@ const fs = require('fs')
 const path = require('path')
 const axios = require('axios')
 const token =
-  'eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIxIiwic3ViIjoiYWRtaW4iLCJpc3MiOiJwY2FwaSIsImlhdCI6MTY5MjIzNDQxNiwidXNlcm5hbWUiOiJhZG1pbiIsImV4cCI6MTY5MjMwNjQxNn0.R45O1KaWqZHbL_XYy4a6eKP4EvtMHOQAAnmgOBRmqVQ'
+  'eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIxNDA2ODg0NTgzMTE4NDkxNjQ5Iiwic3ViIjoiYWRtaW4iLCJpc3MiOiJSdW53aXNlIiwiaWF0IjoxNzI0ODIzMDUxLCJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjoxNzI0ODk1MDUxfQ.aVWraOlQ8wg885z5rgEqc4ba1CMTqsRPjxYzhrfaCyg'
 
 // 解析获取函数
 const teshu = {
@@ -22,6 +22,24 @@ const teshu = {
   }
 }
 
+// 递归获取目录下的所有文件
+function getAllFiles(dirPath, arrayOfFiles = []) {
+  const files = fs.readdirSync(dirPath)
+
+  files.forEach(file => {
+    const fullPath = path.join(dirPath, file)
+    const stats = fs.statSync(fullPath)
+
+    if (stats.isDirectory()) {
+      getAllFiles(fullPath, arrayOfFiles)
+    } else {
+      arrayOfFiles.push(fullPath.replace(`${dirPath}${path.sep}`, '').replace(/\\/g, '/')) // 替换路径分隔符
+    }
+  })
+
+  return arrayOfFiles
+}
+
 // 递归目录文件
 function fileDisplay(filePath, course) {
   //根据文件路径读取文件,返回文件列表
@@ -106,20 +124,28 @@ function removeDuplicate(arr) {
 
 // 获取远程菜单目录
 function getmenu(list, cb) {
+  // 检查 list 是否为数组
+  if (!Array.isArray(list)) {
+    throw new TypeError('Expected an array for the list parameter')
+  }
+
   for (var item of list) {
     if (item.type === 2) {
-      cb && cb(item)
+      if (cb) {
+        cb(item)
+      }
     } else if (item.children && item.children.length) {
       getmenu(item.children, cb)
     }
   }
 }
+
 const service = axios.create({
   timeout: 300000
 })
 service.interceptors.request.use(
   config => {
-    config.headers['x-token'] = token
+    config.headers['X-Token'] = token
     return config
   },
   error => {
@@ -128,13 +154,18 @@ service.interceptors.request.use(
   }
 )
 service
-  .get('https://jiasm.zfire.top/pcapi/admin/user/module/list?adminUserId=1')
+  .get('https://jiasm.zfire.top/zfdapi/admin/user/module/list?adminUserId=1406884583118491649')
   .then(res => {
     const { data } = res.data
+    if (!data) {
+      return
+    }
+
     var listmenu = []
     getmenu(data, function (item) {
       listmenu.push(item)
     })
+
     var menuobj = {}
     listmenu.map(item => {
       menuobj[item.fullUrl] = {}
@@ -164,12 +195,29 @@ service
       })
     })
 
+    var apiUrl = []
+    Object.keys(menuobj).map(function (key1) {
+      Object.keys(menuobj[key1]).map(function (key2) {
+        apiUrl.push(key2)
+      })
+    })
+
     listss = removeDuplicate(listss)
-    console.log('页面中使用到的接口去重:', listss, listss.length)
+    apiUrl = removeDuplicate(apiUrl)
+    const missingFiles = getAllFiles('./api').filter(file => !apiUrl.includes(file))
+
+    // console.log('页面中使用到的接口去重:', listss, listss.length)
+    // console.log('页面中使用到的接口文件地址:', apiUrl, apiUrl.length)
+    // console.log('页面中没有使用到的接口文件:', missingFiles, missingFiles.length)
     // console.log('页面中使用到的接口对应关系:', menuobj)
 
     // 导出页面中使用到的接口对应关系
-    let str = JSON.stringify(menuobj)
+    let str = JSON.stringify({
+      页面中使用到的接口去重: listss,
+      页面中使用到的接口文件地址: apiUrl,
+      页面中没有使用到的接口文件: missingFiles,
+      页面中使用到的接口对应关系: menuobj
+    })
     fs.writeFile('./data.json', str, function (err) {
       if (err) {
         res.status(500).send('Server is error...')