如何从其他文件夹调用axios



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

my save function

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

my service file

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

my plugins file

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不是函数

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

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

我用

解决这个问题
const axios = require("axios");
const instance = axios.create({
baseURL: process.env.VUE_APP_API_URL,
headers: {
"Content-Type": "application/json",
},
});
exports.create = async () => {
instance
.get("/")
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
})
.finally(() => {});
};

所以,不要从plugins文件夹中导入axios,直接从services

中使用它

最新更新