目录结构

image.png

api/index.js

  1. import Axios from '../utils/httpAxios';
  2. /*
  3. * require.context(directory,useSubdirectories,regExp)
  4. * 1.directory:表示检索的目录
  5. * 2.useSubdirectories:表示是否检索子文件夹
  6. * 3.regExp:匹配文件的正则表达式,一般是文件名
  7. */
  8. const dirdata = require.context('./config', true, /\.js$/);
  9. const res = dirdata.keys().reduce((val, item) => {
  10. //获取当前文件下的所有请求接口
  11. const apis = dirdata(item);
  12. //获取当前文件的名字
  13. const newSpaces = item.match(/\/(\w+)\.js$/)[1];
  14. val[newSpaces] = Object.keys(apis).reduce((val, key) => {
  15. val[key] = (data = {}) => {
  16. if(data?.params != {} && apis[key].method === 'get'){
  17. return Axios({ ...apis[key], params:data.params });
  18. }else{
  19. return Axios({ ...apis[key], data });
  20. }
  21. };
  22. return val;
  23. }, {});
  24. return val;
  25. }, {});
  26. // 最后抛出的是一个对象,键名为文件名,值又为一个对象,这个对象的键名为方法名,键值
  27. export default res;

config/detail.js

  1. //获取所有文章标题
  2. export const _getList = {
  3. url:'/get/detail',
  4. method:'get'
  5. }
  6. //获取当前文章信息
  7. export const _getListObj = {
  8. url:'/get/detailObj',
  9. method:'get'
  10. }