39课全栈小程序_第1页
39课全栈小程序_第2页
39课全栈小程序_第3页
免费预览已结束,剩余7页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、全栈小程序开发1. 课前准备1. 云开 档2. 课堂目标1. 开发 的云函数2. 开发 的全栈小程序3. 知识点云函数引入增加/ 除project.config.json文件外所有文件全部放到 frontend中/project.config.jsonminiprogramRoot: mini-fe/, cloudfunctionRoot: mini-back/,/backend/sum/index.js/ 云函数 文件const cloud = require(wx-server-sdk)cloud.init()/ 云函数 函数exports.main = (event, context)

2、= console.log(cosole.log,event) console.log(context)return sum: event.a + event.b开课吧web全栈架构师/ app.jsonLaunch: function () console.log(onLaunch.)/ 这里添加wx.cloud.init(),wx.cloud.callFunction(/ 云函数名称name: add,/ 传给云函数的参数data: a: 1,b: 2,success(res) console.log(res.result.sum) / 3,fail: console.error)wx.c

3、loud.callFunction(/ 云函数名称name: add,/ 传给云函数的参数data: a: 1,b: 2,).then(res = console.log(res.result) / 3).catch(console.error)获取用户信息getUserInfo必须要用button来获取,得到用户 后,可以通过wx.getUserInfo获取, 有弹窗提示开课吧web全栈架构师/ pages/logs/logs.wxmluserInfo. Name登录/ pages/logs/logs.js Page(data: userInfo:,onGetUserInfo(e) cons

4、ole.log(coGetUserInfo,e) if ( e.detail.userInfo) this.setData(avatarUrl: e.detail.userInfo.avatarUrl, userInfo: e.detail.userInfo)获取openid用户的openid,是当前用户在小 的唯一标识,使用云开发,可以很方便的实现获取openid 也就是登录的功能,借助wx-server-sdk新建云函数/server-end/login/login.jsconst cloud = require(wx-server-sdk) cloud.init()exports.mai

5、n = (event, context) = const wxContext = cloud.getWXContext() return event,openid: wxContext.OPENID,使用开课吧web全栈架构师/ pages/logs/logs.js onGetUserInfo(e)/ ./ 添加wx.cloud.callFunction( name: login,data: , success: res = console.log(res)console.log(云函数 login user openid: , res.result.openid),fail: err = c

6、onsole.error(云函数 login 调用失败, err) wx.navigateTo(url: ./deployFunctions/deployFunctions,)/ .持久化 openidwx.cloud.callFunction( name:login,data:, success:(res)=let userInfo = e.detail.userInfo userInfo.openid = res.result.openid this.setData(userInfo)wx.setStorageSync(userInfo,userInfo) console.log(登录 ,

7、res)查看用户开课吧web全栈架构师用户状态onLoad: function()const userInfo = wx.getStorageSync(userInfo) console.log(userInfo,userInfo)if(userInfo & userInfo.openid) this.setData(userInfo),添加云数据库一个类似mongodb的数据库 和传统的mysql关系型数据库的区别开课吧web全栈架构师添加集合添加商品集合 goods 云开发 操作新增数据文档开课吧web全栈架构师const db = wx.cloud.database() db.colle

8、ction(goods).add(data: name:web全栈, count: 1,success: res = / 在返回结果中会包含新创建的 的 _id console.log(res)wx.showToast(title: 新增 ,)console.log(数据库 新增 , _id: , res._id),fail: err = wx.showToast(icon: none, title: 新增 失败)console.error(数据库 新增 失败:, err)上传文件使用云开发的云 能力wx.chooseImage 选择图片wx.cloud.uploadFile上传文件上传头图d

9、oUpload() / 选择图片wx.chooseImage( count: 1,sizeType: compressed, sourceType: album, camera, success: res = wx.showLoading( title: 上传中,)const filePath = res.tempFilePaths0/ 上传图片const cloudPath = my-image123 + filePath.match(/.+?$/)0 wx.cloud.uploadFile(cloudPath, filePath,success: res = console.log(上传文

10、件 :, res) this.setData(uploadUrl:res.fileID),complete: () = wx.hideLoading(),),数据在 和集合上都有提供 get 方法用于获取单个 或集合中多个 的数据。开课吧web全栈架构师)db.collection(todos).where(_id: id).get(success(res) / res.data 是包含以上定义的两条 的数组console.log(res.data)更新数据使用update来更新数据,更新方式多样化,可以直接修改新的值,也支持递增这些函数操作列表页开课吧web全栈架构师/ frontend/p

11、ages/list/list.js Page(/* 页面的初始数据*/ data: goods: ,onLoad(options) this.getList(),getList() const db = wx.cloud.database(); db.collection(goods).get(success: res = console.log(res, res); this.setData( goods: res.data ););)index:比如每次 ,count+1const _ = mand db.collection(goods).doc(goodid).update(data: /新的值name:xx,/ 表示指示数据库将字段自增 10 count: mand.inc(1),success(res) console.log(res.data)下拉刷新开课吧web全栈架构师g.html#%E9%A1%B5%E9%9D%A2%E9%85%8D%E7%BD%AE需要配置 enablePullDownRefresh 配合on

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论