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
JQuery浮动DIV提示信息并自动隐藏的代码
Aug 29 Javascript
Array.prototype.concat不是通用方法反驳[译]
Sep 20 Javascript
Javascript写入txt和读取txt文件示例
Feb 12 Javascript
JavaScript通过字典进行字符串翻译转换的方法
Mar 19 Javascript
jQuery插件PageSlide实现左右侧栏导航菜单
Apr 12 Javascript
JavaScript实现简单的二级导航菜单实例
Apr 15 Javascript
jquery利用拖拽方式在图片上添加热链接
Nov 24 Javascript
jQuery中bind(),live(),delegate(),on()绑定事件方法实例详解
Jan 19 Javascript
JS实现的点击表头排序功能示例
Mar 27 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
Mar 27 Javascript
使用vue实现一个电子签名组件的示例代码
Jan 06 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打印输出函数汇总
2016/08/28 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
2017/05/26 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
2019/07/08 PHP
javascript中对对层的控制
2006/12/29 Javascript
9个JavaScript评级/投票插件
2010/01/18 Javascript
Javascript算符的优先级介绍
2013/03/20 Javascript
jQuery设置div一直在页面顶部显示的方法
2013/10/24 Javascript
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
2016/12/19 Javascript
Vue iview-admin框架二级菜单改为三级菜单的方法
2018/07/03 Javascript
jQuery实现table表格信息的展开和缩小功能示例
2018/07/21 jQuery
在Layui中操作数据表格,给指定单元格添加事件示例
2019/10/26 Javascript
jQuery操作事件完整实例分析
2020/01/10 jQuery
jQuery实现的上拉刷新功能组件示例
2020/05/01 jQuery
[02:17]2016完美“圣”典风云人物:Sccc专访
2016/12/03 DOTA
21行Python代码实现拼写检查器
2016/01/25 Python
python记录程序运行时间的三种方法
2017/07/14 Python
Python使用Turtle模块绘制五星红旗代码示例
2017/12/11 Python
使用 Python 实现文件递归遍历的三种方式
2018/07/18 Python
pandas.DataFrame的pivot()和unstack()实现行转列
2019/07/06 Python
Python3+Selenium+Chrome实现自动填写WPS表单
2020/02/12 Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
2020/02/27 Python
如何验证python安装成功
2020/07/06 Python
2014年自我评价
2014/01/04 职场文书
工程项目经理任命书
2014/06/05 职场文书
2014年预备党员端正入党动机思想汇报
2014/09/13 职场文书
总经理2015中秋节致辞
2015/07/29 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书
利用 SQL Server 过滤索引提高查询语句的性能分析
2021/07/15 SQL Server
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫
Vue OpenLayer 为地图绘制风场效果
2022/04/24 Vue.js
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android