小程序云开发

一、概念

小程序云开发,让前端程序员拥有后端的能力
云函数  (nodejs)
云数据库  (mogodb)
云存储

前端写好云函数  ---> 上传到云服务器 --->实现自定云部署
前端去调用云函数==>间接通过云函数对数据库的操作
有助于前端程序员向全栈方向发展

二、云数据库的创建

1、创建集合,添加记录

 2、

 三、云函数

1、云函数的定义

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境
//定义数据库
const db=cloud.database();
// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext();
const data=await db.collection("feeback").get();
  return {
    data:data.data,
    event,
    sum:event.a+event.b,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
  }
}

2、在页面中调用云函数

wx.cloud.callFunction({name,data})

sendFeed(){
    console.log("发表意见");
    //执行云函数
    wx.cloud.callFunction({
      name:'addFeed',
      data:{
        msg:this.data.msg,//留言信息
        userInfo:wx.getStorageSync('userInfo'),//用户信息
      }
    })
    .then(res=>{
      console.log(res)
      //获取留言
      this.getFeeback();
      //更新msg
      this.setData({msg:""})
    })
    .catch(err=>{
      console.log(err,"err");
    })

 

 3、在云函数中操作云数据


   1、 初始化
        var db = cloud.database();
   2、 获取
        var data = await db.collection("feedback").get()
    3、添加
        var  data = await db.collection("feedback").add(data:{添加数据})

四、发表留言

<!--pages/home/home.wxml-->

<!-- 添加 -->
<view>
  <textarea value="{{msg}}" style="background-color: #f0f0f0;" bindinput="inputHd" />
  <button type="primary" bindtap="addFeed">发表</button>
</view>
<view class="list">
  <view class="item" wx:for="{{list}}" wx:key="_id">
    <view>
      <image src="{{item.userInfo.avatarUrl}}" style="width: 33px;height: 33px;" mode=""/>
      <text>{{item.userInfo.nickName}}</text>
      <text>{{item.datetime}}</text>
    </view>
    <view>{{item.msg}}</view>
  </view>
</view>

 1、获取头像及昵称

addFeed(){
    //获取本地的用户信息
    const userInfo=wx.getStorageSync('userInfo');
    //如果有用户信息
    if(userInfo&&userInfo.nickName){
      //直接发表意见
      this.sendFeed();
    }else{
      //先获取用户头像信息
      wx.getUserProfile({
        desc: '需要用户头像',
        success:(res=>{
          //存储用户头像信息
          wx.setStorageSync('userInfo',res.userInfo);
          //发表留言
          this.sendFeed();
        })
      })
    }
  },

2、执行云函数

sendFeed(){
    console.log("发表意见");
    //执行云函数
    wx.cloud.callFunction({
      name:'addFeed',
      data:{
        msg:this.data.msg,//留言信息
        userInfo:wx.getStorageSync('userInfo'),//用户信息
      }
    })
    .then(res=>{
      console.log(res)
      //获取留言
      this.getFeeback();
      //更新msg
      this.setData({msg:""})
    })
    .catch(err=>{
      console.log(err,"err");
    })
  },

3、微信云执行云函数

getFeeback(){
    //微信云执行云函数
    wx.cloud.callFunction(
      //函数名称feeback,传递数据data为a:3,b:2a:3,b:2
      {name:"feeback",data:{a:3,b:2}}
    )
    .then(res=>{
      //云函数返回的结果
      console.log(res.result);
      this.setData({list:res.result.data.map(item=>({
        ...item,datetime:formatDate(item.datetime,"-")
      }))})
    })
    .catch(err=>{
      console.log(err,"err");
    })
  },

4、获取时间

module.exports={
  /**
   * @description 格式化日期函数
   * @param {String|Number} str 传入日期字符串 或者时间戳
   * @param {string} d1 年月日的间隔符号 默认 /
   * @param {String} d2 时分秒的间隔符号 默认 :
   * @param {String} 返回格式好的日期
   */
  formatDate(str,d1="/",d2=":"){
    //创建时间
     var d=new Date(str);
    //  获取年月日,时分秒
    var year=d.getFullYear();
    var month=d.getMonth()+1;
    var day=d.getDate();
    var hours=d.getHours();
    var minutes=d.getMinutes();
    var seconds=d.getSeconds();
    //给年月日不足补0
    var arr1=[year,month,day].map(item=>String(item).padStart(2,"0"))
    var arr2=[hours,minutes,seconds].map(item=>String(item).padStart(2,"0"))
    return arr1.join(d1)+" "+arr2.join(d2)
  }
  
}

五、微信开发文档

微信开放文档微信开发者平台文档https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started.html

1、查询

 2、分页

 3、排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值