小程序與后端聯(lián)調(diào)踩坑

小程序與后端聯(lián)調(diào)踩坑

本次練習是以springboot作為后端開發(fā)框架卦睹、微信小程序做前端交互仔夺。

后端代碼截圖:

@RestController
@Api(value="用戶注冊登錄的接口", tags= {"注冊和登錄的controller"})
public class RegistLoginController  {
    @Autowired
    private UserService userService;
    @ApiOperation(value="用戶注冊", notes="用戶注冊的接口")
    @PostMapping("/regist")
    public IMoocJSONResult regist(@RequestBody Users user) throws Exception {
        // 1. 判斷用戶名和密碼必須不為空
        if (StringUtils.isBlank(user.getUsername()) || StringUtils.isBlank(user.getPassword())) {
            return IMoocJSONResult.errorMsg("用戶名和密碼不能為空");
        }
        // 2. 判斷用戶名是否存在
        boolean usernameIsExist = userService.queryUsernameIsExist(user.getUsername());
        // 3. 保存用戶季眷,注冊信息
        if (!usernameIsExist) {
            user.setNickname(user.getUsername());
            user.setPassword(MD5Utils.getMD5Str(user.getPassword()));
            user.setFansCounts(0);
            user.setReceiveLikeCounts(0);
            user.setFollowCounts(0);
            userService.saveUser(user);
        } else {
            return IMoocJSONResult.errorMsg("用戶名已經(jīng)存在激蹲,請換一個再試");
        }
        return IMoocJSONResult.ok();
    }
}

service接口層暫時提供兩個方法扫沼,分別為注冊時查詢用戶是否存在和保存用戶。

/**
     * @Description: 判斷用戶名是否存在
     */
    public boolean queryUsernameIsExist(String username);
    /**
     * @Description: 保存用戶(用戶注冊)
     */
    public void saveUser(Users user)

實現(xiàn)代碼:

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UsersMapper userMapper;
    @Autowired
    private Sid sid;
    @Transactional(propagation = Propagation.SUPPORTS)
    @Override
    public boolean queryUsernameIsExist(String username) {
        Users user = new Users();
        user.setUsername(username);
        Users result = userMapper.selectOne(user);
        return result == null ? false : true;
    }
    @Transactional(propagation = Propagation.REQUIRED)
    @Override
    public void saveUser(Users user) {
//        引用自增id缤剧,工具包引入
        String userId = sid.nextShort();
        user.setId(userId);
        userMapper.insert(user);
    }
}

前端小程序代碼,較為簡單:

<view>
    <view class="login-icon">
        <image class="login-img" src="../resource/images/dsp.jpg"></image>
    </view>
    <view class="login-from">
        <form bindsubmit='doRegist'>
            <!--賬號-->
            <view class="inputView">
                <image class="nameImage" src="../resource/images/username.png"></image>
                <label class="loginLabel">賬號</label>
                <input name="username" class="inputText" placeholder="請輸入賬號"/>
            </view>
            <view class="line"></view>
            <!--密碼-->
            <view class="inputView">
                <image class="keyImage" src="../resource/images/password.png"></image>
                <label class="loginLabel">密碼</label>
                <input name="password" class="inputText" password="true" placeholder="請輸入密碼"/>
            </view>
            <!--按鈕-->
            <view>
                <button class="loginBtn" type="primary" form-type='submit'>注冊</button>
            </view>
            <view>
                <button class="goLoginBtn" type="warn" bindtap="goLoginPage">返回登錄</button>
            </view>
        </form>
    </view>
</view>

準備工作做完之后域慷,開始小程序與后端程序的聯(lián)調(diào):


image-20180728222243912.png

顯示在app.js中綁定serverUrl荒辕,即后端程序主機地址(開發(fā)環(huán)境如此設(shè)置),注意此次不能填loacalhost犹褒,而是所出局域網(wǎng)所分配的地址抵窒。

//app.js
App({
  serverUrl: "http://192.168.1.183:8081",
  userInfo: null
})

接著就是要在詳情頁設(shè)置開發(fā)環(huán)境,跳過域名設(shè)置叠骑,否則會控制臺會提示錯誤:

并且在app.json啟用debug李皇。

值得注意的是在綁定主機地址時要寫全地址,比如寫成192.168.1.183:8081是會報錯的宙枷,應(yīng)寫為http://192.168.1.183:8081掉房。

前端調(diào)用后端接口時,應(yīng)先仔細閱讀后端提供接口文檔:

const app = getApp()
Page({
    data: {
    },
    doRegist: function(e){
      var formObject=e.detail.value;
      var username =formObject.username;
      var password=formObject.password;
      // 簡單驗證
        if(username.length==0||password.length==0){
          wx.showToast({
            title: '用戶名和密碼不能為空慰丛!',
            icon: 'none',
           //延遲時間
            duration: 3000,
          })
        }
        else{
          var serverUrl=app.serverUrl;
          wx.request({
            url: serverUrl+'/regist',//此次對應(yīng)后端提供接口
            method: "POST",//此次對應(yīng)后端提供接口
            data:{
              username: username,
              password: password
            },
            header:{
              'content-type': 'application/json' // 默認值
            },
            success:function(res){
              console.log(res.data);
            }
          })
        }
    }
})

對應(yīng)springboot整合swagger2接口生成文檔:


image-20180728222853707.png

小程序的回調(diào)函數(shù)返回的數(shù)據(jù)要與swagger頁面調(diào)試返回的狀態(tài)嗎一致卓囚,這樣聯(lián)調(diào)就成功了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末诅病,一起剝皮案震驚了整個濱河市哪亿,隨后出現(xiàn)的幾起案子粥烁,更是在濱河造成了極大的恐慌,老刑警劉巖蝇棉,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件讨阻,死亡現(xiàn)場離奇詭異,居然都是意外死亡篡殷,警方通過查閱死者的電腦和手機钝吮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贴唇,“玉大人搀绣,你說我怎么就攤上這事〈疗” “怎么了链患?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瓶您。 經(jīng)常有香客問我麻捻,道長,這世上最難降的妖魔是什么呀袱? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任贸毕,我火速辦了婚禮,結(jié)果婚禮上夜赵,老公的妹妹穿的比我還像新娘明棍。我一直安慰自己,他們只是感情好寇僧,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布摊腋。 她就那樣靜靜地躺著,像睡著了一般嘁傀。 火紅的嫁衣襯著肌膚如雪兴蒸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天细办,我揣著相機與錄音橙凳,去河邊找鬼。 笑死笑撞,一個胖子當著我的面吹牛岛啸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播娃殖,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼值戳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了炉爆?” 一聲冷哼從身側(cè)響起堕虹,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤卧晓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后赴捞,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逼裆,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年赦政,在試婚紗的時候發(fā)現(xiàn)自己被綠了胜宇。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡恢着,死狀恐怖桐愉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情掰派,我是刑警寧澤从诲,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站靡羡,受9級特大地震影響系洛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜略步,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一描扯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧趟薄,春花似錦绽诚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至岔帽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間导绷,已是汗流浹背犀勒。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留妥曲,地道東北人贾费。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像檐盟,于是被迫代替她去往敵國和親褂萧。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理葵萎,服務(wù)發(fā)現(xiàn)导犹,斷路器唱凯,智...
    卡卡羅2017閱讀 134,651評論 18 139
  • 問題: 小張同學的項目采用的是前后端分離架構(gòu),現(xiàn)在前后端程序猿已經(jīng)碰過面谎痢,協(xié)商好了一些前端需要的數(shù)據(jù)接口磕昼,于是前后...
    xinyuans閱讀 6,604評論 1 10
  • 凡講授書,不在數(shù)量多节猿,而貴在精熟票从。 應(yīng)根據(jù)孩子的資源靈活處理,能掌握二百字的滨嘱, 只需傳授一百字峰鄙。經(jīng)...
    大軍的簡書閱讀 345評論 0 5
  • 秋風擾季鷹,對景恨悲生太雨。 不見吳江水吟榴,難嘗鱸膾羹。 辭官還故里躺彬,歸隱慰鄉(xiāng)情煤墙。 且樂杯中酒,何求身后名宪拥。 知機休戀棧...
    文泉野老閱讀 374評論 0 3
  • 一直認為自己是個很會做減法的女人仿野,今天收拾垃圾袋時傻眼了,整整六大包她君,挫折感倍增脚作,我的減法生活究竟能打幾分...
    武當坤坤媽閱讀 206評論 0 0