vue.js根据代码运行环境选择baseurl的方法


Posted in Javascript onFebruary 28, 2018

配置通用的API前缀可以更好在本地通过接口代理转发获取数据、或者部署时在Nginx中做反向代理,但是项目中一旦涉及大量的需要文件上传的部分(文件上传不走Ajax的方法),我们需要考虑更好管理接口的baseURL,项目中 Ajax 请求用 axios ,原始代码如下

修改前

// 创建axios实例、配置baseURL、超时时间
const service = axios.create({
 baseURL: '/development/api', // 从环境进程中根据运行环境获取的api的base_url
 timeout: 5000         // 请求超时时间
})
/* 保存分配角色 */
export function fetchSaveDisUser (params1) {
 return fetch({
  url: '/user/empower',
  method: 'post',
  params: params1,
  paramsSerializer: function (params) {
   return Qs.stringify(params, { arrayFormat: 'repeat' })
  }
 })
}

/* 上传文件URL 从运行环境process.env中读取API配置 */
export let uploadUrl = '/development/api/doi/analys/upload'

优化方法

找到config/dev.env.js 和 config/prod.env.js,在代码添加变量 API_BASEURL(名字自定义)如下:

module.exports = {
 NODE_ENV: '"production"', // PS:不要复制、开发环境和生产环境有区别
 API_BASEURL: '"/development/api/"' // 需要自己添加的代码
}

然后在需要使用baseURL的地方替换为 process.env. API_BASEURL

修改后代码如下

// 创建axios实例、配置baseURL、超时时间
const service = axios.create({
 baseURL: process.env.API_BASEURL, // 从环境进程中根据运行环境获取的api的base_url
 timeout: 5000         // 请求超时时间
})
/* 保存分配角色 */
export function fetchSaveDisUser (params1) {
 return fetch({
  url: '/user/empower',
  method: 'post',
  params: params1,
  paramsSerializer: function (params) {
   return Qs.stringify(params, { arrayFormat: 'repeat' })
  }
 })
}

/* 上传文件URL 从运行环境process.env中读取API配置 */
export let uploadUrl = process.env.API_BASEURL + '/doi/analys/upload'

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
优化 JavaScript 代码的方法小结
Jul 16 Javascript
你需要知道的10个最佳javascript开发实践小结
Apr 15 Javascript
js的正则test,match,exec详细解析
Jan 29 Javascript
jQuery学习笔记之回调函数
Aug 15 Javascript
jquery dataview数据视图插件使用方法
Dec 23 Javascript
Angular的MVC和作用域
Dec 26 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
Jan 17 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
Jan 19 Javascript
JavaScript实现封闭区域布尔运算的示例代码
Jun 25 Javascript
详解Vue CLI3配置解析之css.extract
Sep 14 Javascript
Nuxt.js开启SSR渲染的教程详解
Nov 30 Javascript
layui复选框的全选与取消实现方法
Sep 02 Javascript
vue+element实现批量删除功能的示例
Feb 28 #Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
Feb 28 #Javascript
React 组件转 Vue 组件的命令写法
Feb 28 #Javascript
JavaScript复制内容到剪贴板的两种常用方法
Feb 27 #Javascript
Vue中this.$router.push参数获取方法
Feb 27 #Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
Feb 27 #Javascript
angularjs数组判断是否含有某个元素的实例
Feb 27 #Javascript
You might like
PHP实现更新中间关联表数据的两种方法
2014/09/01 PHP
win平台安装配置Nginx+php+mysql 环境
2016/01/12 PHP
PHP.vs.JAVA
2016/04/29 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
2016/10/08 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
拖动table标题实现改变td的大小(css+js代码)
2013/04/16 Javascript
利用js制作html table分页示例(js实现分页)
2014/04/25 Javascript
JavaScript 匿名函数和闭包介绍
2015/04/13 Javascript
javascript实现添加附件功能的方法
2015/11/18 Javascript
easyui tree带checkbox实现单选的简单实例
2016/11/07 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
JS中from 表单序列化提交的代码
2017/01/20 Javascript
AngularJS ui-router (嵌套路由)实例
2017/03/10 Javascript
JavaScript装饰器函数(Decorator)实例详解
2017/03/30 Javascript
微信小程序获取用户openid的实现
2018/12/24 Javascript
前端天气插件tpwidget使用方法详解
2019/06/24 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
2020/11/12 Javascript
[50:11]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第三场
2018/04/09 DOTA
python实现简易云音乐播放器
2018/01/04 Python
python中实现将多个print输出合成一个数组
2018/04/19 Python
如何用python写一个简单的词法分析器
2018/12/18 Python
详解Django 时间与时区设置问题
2019/07/23 Python
TensorFlow打印输出tensor的值
2020/04/19 Python
python如何处理程序无法打开
2020/06/16 Python
柏林通行证:Berlin Pass
2018/04/11 全球购物
搞笑创意广告语
2014/03/17 职场文书
计算机专业应届生求职信
2014/04/06 职场文书
在教室放鞭炮的检讨书
2014/09/28 职场文书
如何写贫困证明申请书
2014/10/29 职场文书
成本低的5个创业项目:投资小、赚钱快
2019/08/20 职场文书
导游词之丹东鸭绿江
2019/10/24 职场文书
Python中X[:,0]和X[:,1]的用法
2021/05/10 Python
python如何利用traceback获取详细的异常信息
2021/06/05 Python
Go语言怎么使用变长参数函数
2022/07/15 Golang