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 相关文章推荐
js导航菜单(自写)简单大方
Mar 28 Javascript
JQuery给元素添加/删除节点比如select
Apr 02 Javascript
javascript 手动给表增加数据的小例子
Jul 10 Javascript
js实现连个数字相加而不是拼接的方法
Feb 23 Javascript
jquery分页插件jquery.pagination.js使用方法解析
Apr 01 Javascript
原生js仿jquery实现对Ajax的封装
Oct 04 Javascript
javascript动画系列之模拟滚动条
Dec 13 Javascript
JS简单实现移动端日历功能示例
Dec 28 Javascript
Vue.js系列之vue-router(上)(3)
Jan 03 Javascript
JS实现动态修改table及合并单元格的方法示例
Feb 20 Javascript
使用vue开发移动端管理后台的注意事项
Mar 07 Javascript
js实现三角形粒子运动
Sep 22 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_imagick实现复古效果的方法
2016/10/18 PHP
PHP三种方式实现链式操作详解
2017/01/21 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
HR vs CL BO3 第一场 2.13
2021/03/10 DOTA
使用 js+正则表达式为关键词添加链接
2014/11/11 Javascript
jQuery读取XML文件内容的方法
2015/03/09 Javascript
jQuery关键词说明插件cluetip使用指南
2015/04/21 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
详解javascript函数的参数
2015/11/10 Javascript
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
2017/11/09 jQuery
layui递归实现动态左侧菜单
2019/07/26 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
基于JavaScript实现表格隔行换色
2020/05/08 Javascript
关于angular引入ng-zorro的问题浅析
2020/09/09 Javascript
python实现文本文件合并
2015/12/29 Python
Python使用Pycrypto库进行RSA加密的方法详解
2016/06/06 Python
Python中%r和%s的详解及区别
2017/03/16 Python
Python 类的继承实例详解
2017/03/25 Python
基于python中pygame模块的Linux下安装过程(详解)
2017/11/09 Python
Python查看微信撤回消息代码
2018/06/07 Python
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
PySide和PyQt加载ui文件的两种方法
2019/02/27 Python
利用python求积分的实例
2019/07/03 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
python根据时间获取周数代码实例
2019/09/30 Python
html5 canvas移动浏览器上实现图片压缩上传
2016/03/11 HTML / CSS
屈臣氏乌克兰:Watsons UA
2019/10/29 全球购物
自荐信格式的六要素
2013/09/21 职场文书
环境科学专业研究生求职信
2013/10/02 职场文书
营销与策划应届生求职信
2013/11/04 职场文书
餐饮采购员岗位职责
2014/03/15 职场文书
协议书与合同的区别
2014/04/18 职场文书
学习三严三实对照检查材料思想汇报
2014/09/22 职场文书
《观潮》教学反思
2016/02/17 职场文书
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python
python前后端自定义分页器
2022/04/13 Python