zoukankan      html  css  js  c++  java
  • 关于分层架构的思想

    问题:在写用户登录模块的时候,要请求相应的接口,这时接口的封装涉及到分层架构

    解决:

    1.工具层:封装ajax请求的公共方法

    2.数据层:根据不同的模块,对应封装不同的请求接口

    3.业务层:调用相应的接口函数,传相应的参数

    class MUtil {
    	request(param){
    		return new Promise((resolve,reject) =>{
    			$.ajax({
    				type     : param.type     || 'get',
    				url      : param.url      || '',
    				dataType : param.dataType || 'json',
    				data     : param.data     || null,
    				success  : res => {
    					//请求成功
    					if (res.status === 0){
    						typeof resolve === 'function' &&	resolve(res.data,res.msg)//resolve为true,执行后面的语句
    					}
    					//未登录
    					else if (res.status === 10){
    						this.doLogin();
    					}else{
    						typeof reject === 'function' &&	reject(res.msg || res.data)//resolve为true,执行后面的语句
    					}
    				},
    				err      : err => {
    					typeof reject === 'function' &&	reject(err.statusText)
    				}
    
    			});
    		})
    
    	}
    	//跳转登录
    	doLogin(){
    		window.location.href = '/login?redirect=' + encodeURIComponent(window.location.pathname) ;//处理特殊字符,安全处理
    	}
    
    }
    export default MUtil;
    

     

    import Mutil 		from 'util/mm.jsx';
    const _mm = new Mutil();
    
    class User{
    	login(loginInfo){
    		return	_mm.request({
    				type:'post',
    				url : '/manage/user/login.do',
    				data:loginInfo
    			})
    	}
    }
    export default User;
    

      

    	onSubmit(){
    		_user.login({
    			username:this.state.username,
    			password:this.state.password
    		})
    		.then((res)=>{
    
    		}, (err)=>{
    
    		})
    	}
    

      

     

  • 相关阅读:
    linux mint安装成功
    js 兼容性
    程序员的肚子有多大,水平就有多高
    财富通直连接口for rails3
    ubuntu live cd版本是没有recuse broken system功能
    生活百科
    省市县导入mysql代码,通过csv
    省市县导入mysql代码,通过csv
    休眠、挂起、待机三者之间的区别 收藏
    支付宝接口for rails3
  • 原文地址:https://www.cnblogs.com/ipoodle/p/9751260.html
Copyright © 2011-2022 走看看