VueJS和Axios用于产品环境的多个基本URL

时间:2018-10-08 06:57:50

标签: vue.js axios

要在prod和dev env中配置我的应用程序,我目前使用类似的东西:

let baseURL;

if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') {
  baseURL = 'http://127.0.0.1/';
} else {
  baseURL = 'http://api.example.com';
}

export const HTTP = axios.create(
  {
    baseURL: baseURL,
    headers: {...}
  })

然后我使用以下方法查询API

HTTP.get(...).then(...)

现在,我需要使用不同的基本URL连接到多个端点。

我需要做例如:

HTTP.userApi.get()
HTTP.productApi.get()

如何使用多个端点配置prod / dev环境?

1 个答案:

答案 0 :(得分:2)

axios方面有两个选项:

  1. 为自定义请求创建custom instance
// Create an instance using the config defaults provided by the library
// At this point the timeout config value is `0` as is the default for the library
const instance = axios.create();

// set a default baseURL for this particular instance
instance.defaults.baseURL= 'http://new-root.com';
  1. 使用request config对每个请求使用自定义baseURL
axios.get('my/url', { baseURL: 'http://new-root.com' })

说到您的情况,我将为每个“端点”创建一个axios实例-HTTP.userApi将成为实例,HTTP.productApi将成为另一个实例。如果您愿意,他们总是可以共享共同的东西;)

祝你好运!