打算开发一个小程序,因为前端 API 请求各种各样,所以打算找一款设计比较好的小程序进行参考。
1 litemall
star:17k
架构方式:
util.js 中封装小程序的 request
api.js 中定义api地址
function request(url, data = {}, method = "GET") {return new Promise(function(resolve, reject) {wx.request({url: url,data: data,method: method,header: {'Content-Type': 'application/json','X-Litemall-Token': wx.getStorageSync('token')},success: function(res) {if (res.statusCode == 200) {if (res.data.errno == 501) {// 清除登录相关内容try {wx.removeStorageSync('userInfo');wx.removeStorageSync('token');} catch (e) {// Do something when catch error}// 切换到登录页面wx.navigateTo({url: '/pages/auth/login/login'});} else {resolve(res.data);}} else {reject(res.errMsg);}},fail: function(err) {reject(err)}})});}
var WxApiRoot = 'http://localhost:8080/wx/';module.exports = {IndexUrl: WxApiRoot + 'home/index', //首页数据接口AboutUrl: WxApiRoot + 'home/about', //介绍信息AuthLoginByWeixin: WxApiRoot + 'auth/login_by_weixin', //微信登录};
实际使用
const util = require('../utils/util.js');const api = require('../config/api.js');util.request(api.AuthLoginByWeixin, {code: res.code,userInfo: userInfo}, 'POST').then(res => {if (res.errno === 0) {//存储用户信息wx.setStorageSync('userInfo', res.data.userInfo);wx.setStorageSync('token', res.data.token);resolve(res);} else {reject(res);}}).catch((err) => {reject(err);});}).catch((err) => {reject(err);})
好处:简单明了
