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 相关文章推荐
在firefox和Chrome下关闭浏览器窗口无效的解决方法
Jan 16 Javascript
js隐式全局变量造成的bug示例代码
Apr 22 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
Dec 18 Javascript
canvas实现钟表效果
Feb 13 Javascript
jQuery实现弹窗居中效果类似alert()
Feb 27 Javascript
angular十大常见问题
Mar 07 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
Apr 28 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
Oct 22 Javascript
vue生命周期与钩子函数简单示例
Mar 13 Javascript
vue-form表单验证是否为空值的实例详解
Oct 29 Javascript
微信小程序中的列表切换功能实例代码详解
Jun 09 Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
Oct 29 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将数据导入到Foxmail
2006/10/09 PHP
php object转数组示例
2014/01/15 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
2014/03/11 PHP
smarty内部日期函数html_select_date()用法实例分析
2015/07/08 PHP
php之static静态属性与静态方法实例分析
2015/07/30 PHP
PHP获取链表中倒数第K个节点的方法
2018/01/18 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
PHP自动识别当前使用移动终端
2018/05/21 PHP
javascript编程起步(第二课)
2007/02/27 Javascript
document.open() 与 document.write()的区别
2007/08/13 Javascript
图片Slider 带左右按钮的js示例
2013/08/30 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
2015/09/05 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
深入理解nodejs中Express的中间件
2017/05/19 NodeJs
vue页面离开后执行函数的实例
2018/03/13 Javascript
spirngmvc js传递复杂json参数到controller的实例
2018/03/29 Javascript
原生JS实现随机点名项目的实例代码
2019/04/30 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
JavaScript手写数组的常用函数总结
2020/11/22 Javascript
浅谈python连续赋值可能引发的错误
2018/11/10 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
python 实现生成均匀分布的点
2019/12/05 Python
澳大利亚领先的优质葡萄酒拍卖会:Langton’s Fine Wines
2019/03/24 全球购物
如何用Java判断一个文件或目录是否存在
2012/11/19 面试题
Ejb技术面试题
2015/04/29 面试题
小学毕业典礼主持词
2014/03/27 职场文书
艺术节主持词
2014/04/02 职场文书
大学毕业生求职自荐书
2014/06/05 职场文书
“三支一扶”支教教师思想汇报
2014/09/13 职场文书
2014班子“三严三实”对照检查材料思想汇报
2014/09/18 职场文书
市级三好学生评语
2014/12/29 职场文书
离婚案件答辩状
2015/05/22 职场文书
奶茶店的创业计划书该怎么写?
2019/07/15 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书
Python 图片添加美颜效果
2022/04/28 Python