我想在该文件夹中创建新文件夹名称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