前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue+element踩坑记-统一管理线上线下接口

vue+element踩坑记-统一管理线上线下接口

作者头像
何处锦绣不灰堆
发布2020-05-29 09:31:08
4270
发布2020-05-29 09:31:08
举报
文章被收录于专栏:农历七月廿一农历七月廿一
需求分析

我们在使用后端提供的接口的过程中,都是先在线下测试结束,没有问题以后才会将代码部署到线上,这样才保证线上的代码是没有问题的。所以如果只有一个接口和一个页面的话,那么是无所谓的, 要不要统一管理都是一样的,但是一旦接口和页面多的话,就会比较麻烦了,所以我们需要统一一个文件进行管理这些接口,这样可以不管是线上还是线下的跑项目,都是可以直接执行的,也不会出现更改过多的问题。

实现思路

我们在config文件里面新建一个管理api的js,这样可以进行统一设置,在我们系统目录下面进行更改dev.env.js和prod.env.js里面进行添加自己需要的线上和线下的接口

代码实现
dev.env.js
代码语言:javascript
复制
'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')

/*module.exports = merge(prodEnv, {
 NODE_ENV: '"development"'
})*/
module.exports = merge(prodEnv, {
 NODE_ENV: '"development"',//开发环境
 api_9101 : '"http://47.98.113.173:9101"',  //房价码的线下接口
 api_9102 : '"http://47.98.113.173:9102"',  //会员的线下接口
 api_9519 : '"http://47.98.113.173:9519"',  //登陆的线下接口
});
prod.env.js
代码语言:javascript
复制
'use strict'
/*module.exports = {
 NODE_ENV: '"production"'
}*/
module.exports = {
 NODE_ENV: '"production"',//生产环境
 api_price : '"http://price.crowncrystalhotel.com"',   //房价码的线上接口
 api_member : '"http://member.crowncrystalhotel.com"', //会员的线上接口
 api_9022 :'"http://47.98.113.173:9022"',//登陆的线上接口
};
api.js
代码语言:javascript
复制
/**
* 线下接口
* @type {string}
*/
const api_9519 = process.env.api_9519;  //登陆的线下接口  徐哥的所有的线下接口
const api_9101 = process.env.api_9101;  //房价码的线下接口
const api_9102 = process.env.api_9102;  //会员的线下接口

/**
* 线上接口
* @type {string}
*/

const api_9022 = process.env.api_9022;         //登陆的线上接口   徐哥所有的线下接口
const api_price = process.env.api_price;       //房价码的线上接口
const api_member = process.env.api_member;     //会员的线上接口

export default {
 /**
  * 线上接口
  */
  api_9022_9519 : api_9022,
  api_price_9101 : api_price,
  api_member_9102 : api_member,
  
 /**
  * 线下接口
  */
  /*api_9022_9519 : api_9519,
  api_price_9101 : api_9101,
  api_member_9102 : api_9102,*/
}

当然这里的接口的数量是不上限的,可以一直加,只要是你们的环境是存在的接口。api.js 是我自己新建的,你们自己喜欢用什么都可以。

main.js
代码语言:javascript
复制
import api from '../config/api'
Vue.prototype.api = api;
引用
代码语言:javascript
复制
handleLogin : function(){
{
        let that = this;
        /**
         * 常规登录  && code.trim().length > 0
         */
        if(that.check_login === 'login_flag'){
          let url =  that.api.api_9022_9519 + '/v1/common/employee/login';
          let username = this.account.username;
          let pwd = this.account.pwd;
          let code = this.account.code;
          if(username.trim().length > 0 && pwd.trim().length > 0){
            this.$axios({
              method: 'post',
              url: url,
              data: {
                code: code,
                user_name: username,
                password: that.getmd5(pwd),
              }
            }).then((res) => {
              console.info(res);
              if(res.data.message === "success") {
                sessionStorage.setItem("root_level",res.data.root_level);
                sessionStorage.setItem("rules",JSON.stringify(res.data.rules));
                localStorage.setItem('access-user', JSON.stringify(res.data.real_name));
                localStorage.setItem('userInfo', JSON.stringify(res.data.user_info));
                that.$router.push({
                  path: '/'
                });
              } else {
                that.$message({
                  message: '登录失败',
                  type: 'warning'
                });
                //this.loading = false;
                //console.info(data.data.message);
                //this.$message.error("登录失败,账号或密码错误");
              }
            }).catch(function(err) {
              that.$message({
                message: '登录失败',
                type: 'warning'
              });
            })
          }
      },
}

当然你的url也可以在你的return里面定义,这样一个页面上的所有就可以再次统一一下,举个例子:

代码语言:javascript
复制
return {
url : this.api_9022_9519,
}

那么下面用的就可以直接that.url就可以了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-06-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求分析
  • 实现思路
  • 代码实现
    • dev.env.js
      • prod.env.js
        • api.js
          • main.js
          • 引用
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档