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 在各个浏览器中执行的耐性
Apr 06 Javascript
理解Javascript_01_理解内存分配原理分析
Oct 11 Javascript
jQuery hover 延时器实现代码
Mar 12 Javascript
js AppendChild与insertBefore用法详细对比
Dec 16 Javascript
js中function()使用方法
Dec 24 Javascript
使用JQ来编写最基本的淡入淡出效果附演示动画
Oct 31 Javascript
javascript正则表达式基础知识入门
Apr 20 Javascript
JavaScript学习笔记之数组的增、删、改、查
Mar 23 Javascript
jQuery复制节点用法示例(clone方法)
Sep 08 Javascript
Node.js数据库操作之连接MySQL数据库(一)
Mar 04 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
Jul 18 Javascript
详解vue父子组件关于模态框状态的绑定方案
Jun 05 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的memcached客户端memcached
2011/06/14 PHP
php 利用array_slice函数获取随机数组或前几条数据
2015/09/30 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
php中bind_param()函数用法分析
2017/03/28 PHP
php str_replace替换指定次数的方法详解
2017/05/05 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
php面向对象基础详解【星际争霸游戏案例】
2020/01/23 PHP
js中if语句的几种优化代码写法
2011/03/12 Javascript
IE的有条件注释判定IE版本详解(附实例代码)
2012/01/04 Javascript
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
通过length属性判断jquery对象是否存在
2013/10/18 Javascript
js判断字符长度及中英文数字等
2014/03/19 Javascript
自定义jquery模态窗口插件无法在顶层窗口显示问题
2014/05/29 Javascript
浅谈Javascript中深复制
2014/12/01 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
2015/12/08 Javascript
AngularJS仿苹果滑屏删除控件
2016/01/18 Javascript
微信小程序之绑定点击事件实例详解
2017/07/07 Javascript
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
2017/07/20 jQuery
Angular.js初始化之ng-app的自动绑定与手动绑定详解
2017/07/31 Javascript
利用jquery如何从json中读取数据追加到html中
2017/12/01 jQuery
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
js中怎么判断两个字符串相等的实例
2019/01/17 Javascript
详解用Webpack与Babel配置ES6开发环境
2019/03/12 Javascript
详解python之配置日志的几种方式
2017/05/22 Python
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
python的setattr函数实例用法
2020/12/16 Python
Html5应用程序缓存(Cache manifest)
2018/06/04 HTML / CSS
HTML5 Canvas实现放大镜效果示例
2020/03/25 HTML / CSS
阿联酋彩妆品牌:OUD MILANO
2019/10/06 全球购物
会计电算化专业毕业生推荐信
2013/12/24 职场文书
关于雷锋的演讲稿
2014/05/10 职场文书
银行竞聘演讲稿
2014/05/16 职场文书
2014年护士长工作总结
2014/11/11 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
CSS子盒子水平和垂直居中的五种方法
2022/07/23 HTML / CSS