• 简书网微信公众号二维码
您当前的位置: 首页 > 网站建设 > 微信小程序需要后端吗?小程序前后端开发实例

微信小程序需要后端吗?小程序前后端开发实例

时间:2023-07-01 14:05 阅读数:126 人阅读 分类:网站建设

  微信小程序需要后端吗?类似于这种专业*的关于小程序开发的问题,估计很多朋友都不是很了解。接下来小编就来讲解一下小程序前后端开发实例。

  案例借助开源NAMI框架(

  ),十分钟即可完成前后端本地部署。

  案例效果一览:

  


  小程序登录

  微信公众平台(包括公众号、小程序)相比APP的一个明显优势,是开发者可以直接利用微信的用户鉴权体系,免去注册、密码登录的步骤。微信小程序对于登录的设计,更是用之于无形,在整个用户使用过程中都是无感知的,一进小程序其实就已经登录了。

  也许有读者会说,小程序登录的时候不是会弹出一个用户信息的询问框吗?错了,这个询问框是调用wx.getUserInfo获取“用户资料”时候弹出的,调用wx.login的“登录”操作是不会弹出任何询问框的。

  


  关于微信小程序登录,官方文档的流程实现起来挺不容易的(如下图),需要服务端维护一个保存OpenID等用户资料的缓存池,同时小程序客户端还需要维护一个3rd session key,并且在之后每次做服务端请求的时候都要带入这个3rd session key。

  


  所幸NAMI框架已经把这块封装好,下面我们用一点篇幅来看看案例是如何做Login。

  (1) app.js

  import nami from '/nami/index';

  App({

  data: {

  userInfo: null,

  rankLoaded: false //排行榜已加载

  },

  onLaunch: function () {

  var app = this;

  //登录

  nami.login(() => {

  nami.getUserInfo((userInfo) => {

  console.log("已获取数据", userInfo);

  app.data.userInfo = userInfo;

  }, () => {

  console.log("用户拒绝提供信息");

  });

  });

  }

  })

  案例在小程序入口的时候实现nami封装的登录,登录成功之后可以看到localstorage中保存了一个叫做NAMI_TOKEN的字符,这个就是小程序登录之后要求前端保存的3rd session key了。

  


  (2) rank.js

  /**

  *下拉刷新

  */

  onPullDownRefresh: function () {

  wx.stopPullDownRefresh();

  var that = this;

  //这里使用了nami封装的request而不是wx.request

  nami.request({

  loading: true,

  url: '/request/scholes_pay/rank.groovy',

  success: function (res) {

  that.setData({

  dataList: res.data.list

  });

  app.data.rankLoaded = true;//加载完成

  }

  });

  },

  截取一个服务端请求的代码片段做分析,发现NAMI框架将request也做了封装,其主要目的是在每次服务端请求的时候将localstorage中的NAMI_TOKEN带入,如图。

  (3)服务端代码:rank.groovy

  /**

  * 排行榜

  * @author woden

  */

  //重点是这一句获取已登录的用户信息

  //NAMI框架中通过nami_token在服务端缓存池找到对应的用户资料,并返回给逻辑代码

  //这里的session指的是NAMI框架中封装的会话上下文

  def user = session.appUser();

  //根据被赞赏金额排名的用户列表

  def list = db.query("""

  select b.*,a.TOTAL_FEE from

  (

  select sum(TOTAL_FEE) TOTAL_FEE,OPEN_ID from PAY_DETAIL group by OPEN_ID

  ) a

  left join PAY_USER b on a.OPEN_ID = b.OPEN_ID

  order by a.TOTAL_FEE desc,b.UPDATE_TIME asc

  limit 10

  """.toString());

  def result = [];

  def i=1;

  for(def o:list){

  def vo = [:];

  vo.avatar = o.AVATAR_URL;

  vo.nickName = o.NICK_NAME;

  vo.fee = fmt.formatPrice(o.TOTAL_FEE/100);

  if(user.openId == o.OPEN_ID){

  vo.my = true;

  }

  vo.rank = i++;

  result += vo;

  }

  return [list:result];

  从这个案例看出,NAMI框架遵循规范推荐的技术原则,将缓存池、3rd key等业务无关的技术细节封装在框架中,让小程序开发者可以更专注于业务逻辑本身。

  看完以上资料,相信大家对于微信小程序需要后端吗这个问题都知道答案了吧。还有其他问题的话欢迎留言与小编探讨,更多相关资料请关注微信小程序素材网。

  

  微信小程序php后端开发实例

  微信小程序服务端怎么开发?

  微信小程序怎么链接java服务端接口?