首页 > 解决方案 > 如何从其他文件夹调用axios

问题描述

我想services在该文件夹中创建新文件夹名称将包括所有axios操作,我在这里使用 vue。这是我尝试的..

我的保存功能

save() {
  const CaseController = require("../services/gantt");
  CaseController.create(this.data);
},

我的服务文件

const axios = () => import("../plugins/axios");

exports.create = async () => {
  return axios
    .get("/")
    .then((res) => {
      console.log(res);
    })
    .catch((err) => {
      console.log(err);
    })
    .finally(() => {});
};

我的插件文件

import axios from "axios";

export default axios.create({
  baseURL: process.env.VUE_APP_API_URL,
  headers: {
    "Content-Type": "application/json",
  },
});

但是当我尝试时,我得到了一个错误

Uncaught (in promise) TypeError: axios.get is not a function

标签: javascriptnode.jsvue.jsaxios

解决方案


好吧,您已经定义axios() => import("../plugins/axios");,所以它是一个没有.get方法的函数。此外,将 import 作为函数使用会使其返回一个 Promise。你需要做:

const axios = import("../plugins/axios");

exports.create = async () => {
  return (await axios)
    .get("/")
      .then((res) => {
        console.log(res);
      })
      .catch((err) => {
        console.log(err);
      })
      .finally(() => {});
};

推荐阅读