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 日期常用的方法
Nov 11 Javascript
HTML node相关的一些资料整理
Jan 01 Javascript
判断某个字符在一个字符串中是否存在的js代码
Feb 28 Javascript
JavaScript常用脚本汇总(一)
Mar 04 Javascript
jquery实现简单的无缝滚动
Apr 15 Javascript
js实现漂浮回顶部按钮实例
May 06 Javascript
JavaScript 对象深入学习总结(经典)
Sep 29 Javascript
超详细的javascript数组方法汇总
Nov 21 Javascript
浅谈原生JS实现jQuery的animate()动画示例
Mar 08 Javascript
使用Node.js实现RESTful API的示例
Aug 01 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
Jun 05 Javascript
使用JS来动态操作css的几种方法
Dec 18 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
便携利器 — TECSUN PL-365简评
2021/03/02 无线电
php-perl哈希算法实现(times33哈希算法)
2013/12/30 PHP
php网站地图生成类示例
2014/01/13 PHP
ThinkPHP3.1新特性之G方法的使用
2014/06/19 PHP
PHP实现判断数组是一维、二维或几维的方法
2017/02/06 PHP
Javascript操纵Cookie实现购物车程序
2006/11/23 Javascript
网页打开自动最大化的js代码
2012/08/22 Javascript
jQuery滚动加载图片效果的实现
2013/03/06 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
简单学习JavaScript中的for语句循环结构
2015/11/10 Javascript
JavaScript组合模式学习要点
2016/08/26 Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
2016/12/26 Javascript
Vue源码解析之数组变异的实现
2018/12/04 Javascript
Node.js爬虫如何获取天气和每日问候详解
2019/08/26 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
微信公众号网页分享功能开发的示例代码
2020/05/27 Javascript
angular中的post请求处理示例详解
2020/06/30 Javascript
python根据时间生成mongodb的ObjectId的方法
2015/03/13 Python
Python验证企业工商注册码
2015/10/25 Python
基于anaconda下强大的conda命令介绍
2018/06/11 Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
2018/08/16 Python
python3中类的继承以及self和super的区别详解
2019/06/26 Python
python使用pyecharts库画地图数据可视化的实现
2020/03/25 Python
Python转换字典成为对象,可以用"."方式访问对象属性实例
2020/05/11 Python
CSS的background属性及CSS3的背景图片设置总结
2016/06/13 HTML / CSS
基于HTML5代码实现折叠菜单附源码下载
2015/11/27 HTML / CSS
详解canvas绘制多张图的排列顺序问题
2019/01/21 HTML / CSS
草莓网中国:StrawberryNet中国
2020/08/17 全球购物
材料加工硕士生求职信
2013/10/10 职场文书
教师自我评价范文
2013/12/16 职场文书
小学庆六一活动方案
2014/02/28 职场文书
党的群众路线教育实践活动宣传标语口号
2014/06/06 职场文书
国富论读书笔记
2015/06/26 职场文书
2015年思想品德教学工作总结
2015/07/22 职场文书
小学生法制教育心得体会
2016/01/14 职场文书