Quiero crear nuevos services de nombres de carpetas en esa carpeta que incluirán todas las acciones de axios y estoy usando vue aquí. Esto es lo que intento ..
mi función de guardado
save() { const CaseController = require("../services/gantt"); CaseController.create(this.data); },mi archivo de servicio
const axios = () => import("../plugins/axios"); exports.create = async () => { return axios .get("/") .then((res) => { console.log(res); }) .catch((err) => { console.log(err); }) .finally(() => {}); };mi archivo de complementos
import axios from "axios"; export default axios.create({ baseURL: process.env.VUE_APP_API_URL, headers: { "Content-Type": "application/json", }, });pero al intentarlo me da error
No capturado (en promesa) TypeError: axios.get no es una función
Bueno, ha definido axios como () => import("../plugins/axios"); , por lo que es una función que no tiene un método .get . Además, usar import como función hace que devuelva una promesa. Necesitas hacer:
const axios = import("../plugins/axios"); exports.create = async () => { return (await axios) .get("/") .then((res) => { console.log(res); }) .catch((err) => { console.log(err); }) .finally(() => {}); };resuelvo esto con
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(() => {}); }; entonces, en lugar de importar los axios de la carpeta de plugins , úselo directamente desde services