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操作ACCESS数据库(读增改删)的代码
May 14 Javascript
Javascript 强制类型转换函数
May 17 Javascript
node.js [superAgent] 请求使用示例
Mar 13 Javascript
jQuery简单实现input文本框内灰色提示文本效果的方法
Dec 02 Javascript
bootstrap switch开关组件使用方法详解
Aug 22 Javascript
基于jstree使用AJAX请求获取数据形成树
Aug 29 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
Feb 24 jQuery
解决bootstrap模态框数据缓存的问题方法
Aug 10 Javascript
Javascript三种字符串连接方式及性能比较
May 28 Javascript
js变量值传到php过程详解 将php解析成数据
Jun 26 Javascript
基于JavaScript实现控制下拉列表
May 08 Javascript
利用promise及参数解构封装ajax请求的方法
Mar 24 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中利用XML技术构造远程服务(上)
2006/10/09 PHP
php数组函数序列之array_combine() - 数组合并函数使用说明
2011/10/29 PHP
php PDO异常处理详解
2016/11/20 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
PDO::inTransaction讲解
2019/01/28 PHP
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
JS实现一键回顶功能示例代码
2013/10/28 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
2013/11/17 Javascript
CSS3,HTML5和jQuery搜索框集锦
2014/12/02 Javascript
javascript中局部变量和全局变量的区别详解
2015/02/27 Javascript
JavaScript各类型的关系图解
2015/10/16 Javascript
日常收藏的jquery技巧
2015/12/02 Javascript
详解Javascript函数声明与递归调用
2016/10/22 Javascript
Bootstrap Table使用整理(四)之工具栏
2017/06/09 Javascript
初探js和简单隐藏效果的实例
2017/11/23 Javascript
Js中使用正则表达式验证输入是否有特殊字符
2018/09/07 Javascript
在angularJs中进行数据遍历的2种方法
2018/10/08 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
微信小程序实现渐入渐出动画效果
2019/06/13 Javascript
Vue axios与Go Frame后端框架的Options请求跨域问题详解
2020/03/03 Javascript
python显示天气预报
2014/03/02 Python
使用Python内置的模块与函数进行不同进制的数的转换
2016/03/12 Python
Python正则匹配判断手机号是否合法的方法
2020/12/09 Python
python将txt文档每行内容循环插入数据库的方法
2018/12/28 Python
pandas.cut具体使用总结
2019/06/24 Python
python for和else语句趣谈
2019/07/02 Python
基于Python实现剪切板实时监控方法解析
2019/09/11 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
TensorFlow低版本代码自动升级为1.0版本
2021/02/20 Python
英国Amara家居法国网站:家居装饰,现代装饰和豪华礼品
2016/12/15 全球购物
金融专业推荐信
2013/11/14 职场文书
护士自我评价范文
2014/01/25 职场文书
希特勒的演讲稿
2014/05/23 职场文书
演讲开头怎么书写?
2019/08/06 职场文书
vue响应式原理与双向数据的深入解析
2021/06/04 Vue.js
不想升级Win11?教你彻底锁定老版Windows系统的方法(附下载地址)
2022/09/23 数码科技