datapip使用之(4)——典型应用:为vue项目提供数据接口实现登录验证

关键字:datapip,vue,前后端分离,真实接口,Mock.js

前 言:本文以登录验证为例,介绍利用datapip为web项目的开发提供真实的数据交互服务,体验开发web项目几乎无需后端工作的高效性。

后端无代码工具datapip是一个独立的、最小化的项目,既可以作为项目起始框架(在其基础上根据业务需求主要进行前端开发即可)也可以作为后端数据服务工具,为web应用提供真实的数据服务。例如,在前后端分离的项目中,前端开发人员可利用datapip替代Mock.js而使用真实的接口和数据。因此,整个项目从开发到部署也许不需要后端开发人员。

一、准备工作

1. 搭建vue开发环境

本例用到一个基于vue+ElementUI的前端项目,因此请先搭建好该类项目的开发、运行环境。如何搭建此类环境的技术贴非常多,本文不再赘述。

本例环境:win7 + nodejs10.0.0 + npm5.6.0

2.下载vue项目

本例所用的vue项目是通过互联网随意搜索得到,感谢原作者,如有侵权请告知本博主删除更换。

下载地址:vue-elementUI后台管理系统: vue-elementUI本项目的定位是后台管理系统,已经完成模块有用户管理、菜单管理、角色管理、公司管理、权限管理、支付配置https://gitee.com/nmgwap/vueproject?_from=gitee_search

3. 测试vue项目

以上地址中有详细的项目测试步骤,请保证该项目能够在您本地正常运行。

4.部署datapip

本例使用两个项目独立运行、跨域访问的模式进行开发,即这个vue项目和datapip项目部署在不同的目录和端口下,vue项目通过跨域的方式访问datapip项目。

部署datapip项目的具体过程请参考:datapip使用之(1)https://mp.csdn.net/mp_blog/creation/editor/121529402

注意:本例使用的datapip部署路径为D:\xampp\tomcat\webapps\datapip

二、修改代码

1. 修改vue项目的main.js代码

修改此文件代码的主要目的实现跨域。

假如文件路径为:E:\vuepro\vueproject-master\src\main.js,打开该文件添加代码,如下图红框内所示:

代码文本:

/// step1:引入 axios
import Axios from 'axios';
/// step2:把axios挂载到vue的原型中,在vue中每个组件都可以使用axios发送请求,
/// 不需要每次都import一下Axios了,直接使用 $axios 即可
Vue.prototype.$axios = Axios;
/// step3:关键代码,设置baseURL
Axios.defaults.baseURL = '/api' 

 2.修改vue项目的index.js代码

修改此文件代码的主要目的实现跨域。

假如文件路径为:E:\vuepro\vueproject-master\config\index.js,将target修改为datapip所在服务器的ip地址及端口号,如下图第16行所示。

 3. 修改login.vue代码

修改此文件代码的主要目的向datapip发送异步请求获取登录数据,进行登录验证、路由跳转等。

假如文件路径为:E:\vuepro\vueproject-master\src\views\login.vue,首先将原来的函数submitForm代码屏蔽掉,删除或改名为submitForm2(见下图第156行),然后编写函数submitForm的代码(见下图第125行至154行)

 

 代码文本:

submitForm() {
      let _this = this;
      if (this.ruleForm.username === "" || this.ruleForm.password === "") {
        alert("账号或密码不能为空");
      } else {
        this.$axios({
          method: "post",
          url:"/datapip/GTransfer", ///关键代码,请求地址
          params: { ///登录参数
            operateid: "alogin",///关键代码,datapip验证登录信息时必须设置的operateid
            userid: _this.ruleForm.username, ///从页面表单控件中获取的帐号
            password: _this.ruleForm.password ///从页面表单控件中获取的密码
          }
        }).then((res) => {
            ///注意:为了代码健壮起见,在下面的判断语句的表达式中,利用函数toUpperCase将返回的字符串转换为全大写
            if(res.data.OperateStatus.toUpperCase() == "OK" && res.data.Session.toUpperCase() == "OK"){
              localStorage.setItem("loginedid",res.data.MesContent.ID);///将登录者的ID写入本地存储,便于共享给其他页面使用
              localStorage.setItem("loginedname",res.data.MesContent.Name);///将登录者的名称写入本地存储,便于共享给其他页面使用
              this.logining = false;
              this.$store.commit("login", "true");
              this.$router.push({ path: "/goods/Goods" });
            }else{
              alert("账号或密码错误!");
            }
          }).catch((error) => {
            alert("登录失败,请重试!");
            console.log(error);
        });
      }
    }

4. 修改navcon.vue代码

修改此文件的目的是项目运行后,在页面右上角显示登录者的姓名或昵称。

假如文件路径为:E:\vuepro\vueproject-master\src\components\navcon.vue,修改及添加的代码如下图中标数字处所示:

 

 三、运行两个项目检验结果

1. 运行datapip

按照datapip使用之(1),部署datapip,不再赘述。

2. 运行vue项目

命令窗口下切换到vue项目所在目录,使用npm run dev运行vue项目,如下图,输入帐号和密码,点击登录即可。

最后,几点注意:

1.  本例中使用的vue项目在node10.0.0下运行正常,在nodejs13.0.0下会出错,其他版本未测试。

2. 数据库帐号superadmin的密码为7个字符a,库表中的值是经过MD5加密之后的。

3. 本例使用的vue项目设计的登录机制:将上次正确登录状态写入本地存储,下次会自动登录。如果调试中需要再次手动登录,请使用该项目的“退出”功能(见右上角二级菜单)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值