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 相关文章推荐
autoPlay 基于jquery的图片自动播放效果
Dec 07 Javascript
分享一个我自己写的ToolTip提示插件(附源码)
Jan 20 Javascript
javascript组合使用构造函数模式和原型模式实例
Jun 04 Javascript
JavaScript常用数组算法小结
Feb 13 Javascript
javascript事件冒泡简单示例
Jun 20 Javascript
非常实用的vue导航钩子
Mar 20 Javascript
JS对象与JSON互转换、New Function()、 forEach()、DOM事件流等js开发基础小结
Aug 10 Javascript
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
Dec 23 Javascript
详解webpack-dev-server 设置反向代理解决跨域问题
Apr 18 Javascript
微信网页登录逻辑与实现方法
Apr 29 Javascript
JavaScript RegExp 对象用法详解
Sep 24 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
Dec 25 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
火影忍者:三大瞳力之一的白眼,为什么没有写轮眼那么出色?
2020/03/02 日漫
PHP数组函数知识汇总
2016/05/12 PHP
Django 中 cookie的使用
2017/08/17 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
jQuery .attr()和.removeAttr()方法操作元素属性示例
2013/07/16 Javascript
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
2016/05/12 Javascript
jQuery插件制作的实例教程
2016/05/16 Javascript
在JS中a标签加入单击事件屏蔽href跳转页面
2016/12/16 Javascript
轻松理解Javascript变量的相关问题
2017/01/20 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
Easyui和zTree两种方式分别实现树形下拉框
2017/08/04 Javascript
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
2017/09/28 Javascript
利用node实现一个批量重命名文件的函数
2017/12/21 Javascript
jQuery实现获取动态添加的标签对象示例
2018/06/28 jQuery
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
Python中类的定义、继承及使用对象实例详解
2015/04/30 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
python实现智能语音天气预报
2019/12/02 Python
python使用建议与技巧分享(二)
2020/08/17 Python
瑜伽服装品牌:露露柠檬(lululemon athletica)
2017/06/04 全球购物
JBL澳大利亚官方商店:扬声器、耳机和音响系统
2018/05/24 全球购物
澳大利亚工具仓库:Tools Warehouse
2018/10/15 全球购物
一套.net面试题及答案
2016/11/02 面试题
Linux中如何用命令创建目录
2016/12/02 面试题
内容编辑个人求职信
2013/12/10 职场文书
工程技术员岗位职责
2014/03/02 职场文书
教师产假请假条范文
2014/04/10 职场文书
三八节标语
2014/06/27 职场文书
大学生创业计划书怎么写
2014/09/15 职场文书
谢师宴家长致辞
2015/07/27 职场文书
百日宴上的祝酒词
2015/08/10 职场文书
2015年教师个人业务工作总结
2015/10/23 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书
win10安装配置nginx的过程
2021/03/31 Servers
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android
MySQL 数据 data 基本操作
2022/05/04 MySQL