精华内容
参与话题
问答
  • 微信云开发

    2020-09-04 15:37:50
    云开发就是在开发微信小程序、小游戏,无需搭建服务器,使用微信云平台的API 进行核心业务开发,从而实现快速上线和迭代。 云开发的四大基础功能: 云函数 :无需自建服务器。在云端运行的代码,微信私有协议天然...

    什么是云开发

    云开发就是在开发微信小程序、小游戏,无需搭建服务器,使用微信云平台的API 进行核心业务开发,从而实现快速上线和迭代。
    云开发的四大基础功能:

    • 云函数 :无需自建服务器。在云端运行的代码,微信私有协议天然鉴权,开发者只需编写自身业务逻辑代码。
    • 数据库 :无需自建数据库。一个既可在小程序前端操作,也能在云函数中读写的 JSON 数据库。
    • 云存储:无需自建存储和 CDN。在小程序前端直接上传/下载云端文件,在云开发控制台可视化管理。
    • 云调用 :原生微信服务集成。基于云函数免鉴权使用小程序开放接口的能力,包括服务端调用、获取开放数据等能力

    建立云开发项目

    在这里插入图片描述

    开通云服务

    • 在开发者工具工具栏左侧,点击 “云开发” 按钮即可打开云控制台,根据提示开通云开发、创建云环境。
    • 默认配额下可以创建两个环境,各个环境相互隔离,每个环境都包含独立的数据库实例、存储空间、云函数配置等资源。
    • 每个环境都有唯一的环境 ID 标识,初始创建的环境自动成为默认环境。
      在这里插入图片描述

    在这里插入图片描述

    体验小程序

    开通环境后,在项目目录中的“cloudfunctions”文件夹上右击 > 更多设置 > 选择刚才建立的环境
    之后就可以体验云开发的部分基础能力了。
    在这里插入图片描述

    查看控制台

    控制台具备以下能力:

    • 运营分析:查看云开发监控、配额使用量、用户访问情况
    • 数据库:管理数据库,可查看、增加、更新、查找、删除数据、管理索引、管理数据库访问权限等
      -== 存储管理==:查看和管理存储空间
    • 云函数:查看云函数列表、配置、日志

    注:若要销毁环境,需要通过工单联系微信服务人员。

    在这里插入图片描述

    云开发能力

    云函数是一段运行在云端的代码,不需要搭建服务器,在开发工具内编写、一键上传部署即可运行后端代码。
    小程序内提供了专门用于云函数调用的 API。
    在页面的js 文件里调用云函数的方法:

    wx.cloud.callFunction({
    	name:云函数名,
    	data:{传给云函数的参数},
    	success:成功回调
    }) 
    

    在这里插入图片描述

    云调用

    云调用在云函数中调用微信服务端接口的一种能力,如获取用户的appid、openid、unionid
    详情可见具体开发指引

    扩展:
    appid:发布到线上的小程序的唯一标志
    openid:同一用户同一应用唯一,即一个用户在不同小程序中分别拥有一个唯一的用户标志,可以用于在同一个小程序中做用户唯一性的判断
    unionid:同一用户不同应用唯一,即一个用户在不同小程序中都有一个共同的联合id,可以用于用户量去重

    云存储

    云开发有一块存储空间,我们可以向这里面上传或下载文件。
    我们在小程序端和云函数里都可以通过 API 使用云存储功能。

    • 文件上传:wx.cloud.uploadFile
    • 下载云文件:wx.cloud.downloadFile
      在这里插入图片描述

    数据库

    • 一个数据库由多个集合组成。
    • 集合可看做一个 JSON 数组。
    • 集合中的每个对象就是一条记录,记录的格式是 JSON。

    数据的增删改查,可以通过云开发控制台或js实现。
    集合中每条记录都有两个字段:

    • _id:记录的唯一标志
    • _openid:记录的创建者

    注:在管理端控制台中创建的记录不会有 _openid 字段,因为这是属于管理员创建的记录。
    开发者可以自定义 _id,但不可自定义和修改 _openid。
    _openid 是在文档创建时由系统根据小程序用户默认创建的,开发者可使用其来标识和定位文档。

    在这里插入图片描述

    1. 在对数据进行增删改查之前,要先获取数据库和集合。
      • 获取数据库:wx.cloud.database()
      • 获取集合:db.collection(集合名称)
    2. 获取了集合之后,就可以对其中的数据进行增删改查了。
      • 増:add({data 新增数据,success,fail})
      • 查:where({data 查询依据}).get({success,success}) ,doc( _id).get({success,success})
      • 改:doc( _id).update({data 要更新的数据,success,success})
      • 删:doc( _id).remove({success,success})

    资源环境

    资源环境就是一个具有独立云开发资源的环境,其云开发资源包括数据库、存储空间、云函数等。
    资源环境默认最多两个,各个环境是相互独立的。
    在实际开发中,建议每一个正式环境都搭配一个测试环境,所有功能先在测试环境测试完毕后再上到正式环境。

    配额

    配额就是腾讯云服务的型号,不同型号的云服务具有不同的存储和计算能力,大家可以根据自己的实际情况做选择。
    资源配额可分为四类:

    • 资源均衡型
    • CDN 资源消耗型
    • 云函数资源消耗型
    • 数据库资源消耗型
    展开全文
  • 基于微信云开发的表白墙微信小程序,无需购买服务器,一键部署,快速拥有一个属于自己的校园表白墙微信小程序。 是否不知道爱要怎么说出口? 是否曾感受到TA忽冷忽热,或远或近,不即不离,欲就还推? 是否和TA...
  • 微信云开发商素材

    2014-04-25 23:11:12
    微信云开发商素材说明,开发微信云作为参考。
  • 使用微信云开发

    2019-05-15 09:06:00
    使用微信云开发 官方介绍文档 开发者可以使用云开发开发微信小程序、小游戏,无需搭建服务器,即可使用云端能力。云开发为开发者提供完整的云端支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行...

    使用微信云开发

    官方介绍文档

    开发者可以使用云开发开发微信小程序、小游戏,无需搭建服务器,即可使用云端能力。云开发为开发者提供完整的云端支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥。

    云开发目前提供三大基础能力支持:

    • 云函数:在云端运行的代码,微信私有协议天然鉴权,开发者只需编写自身业务逻辑代码

    • 数据库:一个既可在小程序前端操作,也能在云函数中读写的 JSON 数据库

    • 存储:在小程序前端直接上传/下载云端文件,在云开发控制台可视化管理

    大致看了一下微信的云开发感觉挺有意思的,正好现在比较闲,所以就想着使用云开发来开发一些demo,熟悉一下微信的云开发,经过考虑决定开发一个类似图片分享的demo 能够很好的 覆盖云开发所涉及到的知识点。

    实现的功能

    • 用户登录后将用户信息保存在云数据库,方便下次读取
    • 发布话题成功后将数据保存在云数据库,在首页列表页面可读取展示
    • 获取云数据库列表展示
    • 本地图片获取和预览等
    • 用户可以选择按时间或者按热度排序(热度即为点赞数量的高低)

    具体实现步骤

    创建一个新的云开发模板

    首先我们创建一个微信云开发快速启用模板 填写对应的appid就可以新建后就可以了,但是有的时候我们想在原有的小程序上建立云开发怎么办,也是可以实现的,首先我们进入我们普通的项目,点击左上方的云开发,同意授权后就行。我们需要使用云函数,那么需要在根目录单独创建一个cloudFunctions文件夹,然后进入project.config.json文件夹配置一下

    	"cloudfunctionRoot": "cloudfunctions/",
    复制代码

    加入这一行代码即可

    具体详细步骤我们可以参考官方文档 云开发

    开始撸代码

    开始开发时我们要知道我们需要什么数据,我们做的是一个图片分享网站,那么我们就需要创建一个piclist表 在云开发中我们需要把一些数据处理放在云函数中,云函数具有很高的权限,再后期开发中可以避免一些不必要的麻烦

    图片上传到数据库

    云开发有一个存储管理的地方我们可以上传我们的图片到云上,那么我们如何使用代码来实现呢

     choosePic(){
        let that = this;
        wx.chooseImage({
          count:1,
          // sizeType: "original",
          success: function(res) {
            console.log(res);
            let imgUrl = res.tempFilePaths[0];
           	that.setData({
                imgUrl:imgUrl
            })
      
            })
          },
        })
      },
      wx.cloud.uploadFile({
              cloudPath: 123.png, //上传头像地址记住不能重名 后期可以自己封装一个不重名方法
              filePath: res.tempFilePath,//图片临时路径
              success: function (res) {
                console.log("图片上传",res);
                let curPicID = res.fileID;
                console.log(curPicID)
             },
           	fail(res) {
                utils.failFn();
              }
        })
      },
    复制代码

    执行函数后我们就可以再控制台上看见打印出来一个fileId 我们进入存储管理即可看到我们选择的图片,那么我们再如何把图片上传到我们的数据库呢。我们就需要创建一个云函数来操控数据库

    我们再cloudfunctios内创建一个名为addPic的云函数再index.js添加代码

    // 云函数入口文件
    const cloud = require('wx-server-sdk')
    cloud.init();
    let db = cloud.database();
    // 云函数入口函数
    exports.main = async (event, context) => {
      let { picID, labelStr, userInfo,nickName} = event;
      try {
        return await db.collection("picList").add({
          data: {
            "openId": userInfo.openId,
            "picID": picID,
            "labelStr": labelStr,
            "thumb":0,
            "nickName": nickName,
            "isLove":0,
            "addTime":db.serverDate()
          } 
        })
      }catch(e){
        return  "cuowu";
      }
     
    }
    复制代码

    云函数创建好了我们就需要调用云函数可以再我们上传到存储成功了调用那我们只需要改造在上方的添加图片加些代码就行了

     wx.cloud.uploadFile({
              cloudPath: 123.png, //上传头像地址记住不能重名 后期可以自己封装一个不重名方法
              filePath: res.tempFilePath,//图片临时路径
              success: function (res) {
                let curPicID = res.fileID;
                console.log(curPicID)
         		 wx.cloud.callFunction({
                  name:"addPic",
                  data:{
                    picID: curPicID,
                    labelStr: label_str,//图片的一些信息等
                    nickName:app.globalData.userInfo.nickName
                  },
                  success(res){
                    console.log("后台上传数据库",res);
                    if(res.result._id){
                      wx.showToast({
                        title: "上传成功",
                        duration: 1500,
                        mask: true
                      });
                      setTimeout(()=>{
                        wx.switchTab({
                          url: '/pages/picWall/picWall',
                        })
                      },800)
                    }else{
                      wx.showToast({
                        title: "上传失败",
                        icon:"none",
                        duration: 1500,
                        mask: true
                      });
                      console.error(res);
                    }
                  },
                  fail(res){
                    console.log("后台上传数据库失败",res);
                  }
                })
             },
           	fail(res) {
                utils.failFn();
              }
        })
      },
    复制代码

    执行后我们可以进入数据库中查看我们的数据是否上传成功

    上传成功下一步就是显示在对应的页面

    获取图片并展示

    那么我们就需要再编写个getPic云函数来获取图片

    // 云函数入口文件
    const cloud = require('wx-server-sdk')
    
    cloud.init()
    const db = cloud.database();
    // 云函数入口函数
    exports.main = async (event, context) => {
      let { curType, curLength, userInfo} = event;
      let sortStr = curType == 1 ?"addTime":"thumb";
      try{
        let pro1 = cloud.callFunction({ name: "getThumbList", data: { openId: userInfo.openId} });;
        let pro2 = db.collection("picList").orderBy(sortStr, "desc").skip(curLength).limit(5).get();//orderby skip 和limit用法在官方文档有详细说明
        let allRes = await Promise.all([pro1, pro2]);
        // return allRes;
        let thumbList = allRes[0].result.data;
        let picList = allRes[1].data;
        //找到两个表里的_id与picItemID是否有值相同,相同说明当前用户已经点赞了
        for (let i = 0; i < picList.length;i++){
          for (let j = 0; j < thumbList.length;j++){
            if (picList[i]._id == thumbList[j].picItemID){
              picList[i].isLove = 1;
              break;
            }
          }
        }
        return picList;
      }catch(e){
        console.log(e);
        return "查询数据库错误";
      }
    }
    复制代码

    再小程序端我们只需要调用获取就行

    	getData(){
    		let that = this;
    		let page = this.data.page + 1;
    		let get_type = this.data.getType;
    		wx.showLoading({
    			title:"loading...",
    			mask:true,
    		})
        // 获取数据
        wx.cloud.callFunction({
          name:"getPic",
          data:{
            curType: get_type,//按时间或者热度排序
            curLength: that.data.listArr.length//当前图片数量用于分页
          },
          success(res){
            wx.hideLoading();
            console.log("请求数据",res);
            let curPageList = res.result;
            if (curPageList.length>0){
              let listArr = that.data.listArr.concat(curPageList);
              that.setData({
                listArr
              })
            }else{
              wx.showToast({
                title: "没有更多数据了",
                icon: "none",
                mask: true,
                duration: 800,
              })
            }
          }
        })
    	},
    复制代码

    以上便是这个小程序的最主要的部分了

    附上小程序源码云开发demo

    展开全文
  • 运用云开发技术,可实现微信小程序云端录音采集、停止采集并上传录音、播放录音、播放上一条下一条录音功能。
  • 微信云开发试水

    2019-06-05 06:17:45
    微信小程序开发了云开发的功能, 提供了数据库、云函数、储存空间的服务。在此基础上,基本可以用js一把捞一个相对完整的服务,并且省下了发布、部署、运维的繁琐。 优点 语言同构、js一把捞, 对前端开发非常友好...

    前言

    微信小程序开发了云开发的功能, 提供了数据库、云函数、储存空间的服务。在此基础上,基本可以用js一把捞一个相对完整的服务,并且省下了发布、部署、运维的繁琐。

    优点

    语言同构、js一把捞, 对前端开发非常友好, 使用js就可以完成整个业务流程。

    环境整合的非常好, 不用操心各种环境配置、数据库、存储空间、部署、运维的东西,减轻了开发复旦

    自带登录和账号体系,方便接入

    缺点

    过多的回调、异步导致代码难看切难以维护、难以调试。

    云函数的框架过于简陋, 处理复杂业务的时候对代码组织能力要求很高

    数据库多表联查的时候很忧伤, 严重影响性能

    没有公共代码块, 无法共享通用代码, 难以整合组织代码

    产品需求

    经过考虑决定做一个小号的微博小程序, 梳理的功能如下

    后台部分

    根据官方的api文档, 小程序的云函数也是可以通过http调用的,这就给一个独立的后台提供了技术接口。 我们可以通过http调用小程序云函数来读取和操作数据库来实现产品后台的功能,是否可以通过htpps上传图片还待探索

    用户部分

    用户端的就是一个小号的微博了。 其中,微信提供了一个存储空间,可以方便的进行文件的存储,账号部分可以直接通过微信的鉴权机制,使用openid作为用户id。

    原型

    设计

    不多说, 上设计稿。

    开发环境

    其实上面的都不重要,坑都在这里

    1.更新开发工具, 摆脱回调

    这里要分两部分说

    • 小程序部分
      在最新的微信开发工具中, 开发了增强编译的功能, 已经支持async语法了。使用async的好处这里就不在列举了。为了可以使用async来调用微信原生的api。可以引入一个工具, 将回调式的转化为async方式
    function promisify (api) {
      return (options, ...params) => {
        return new Promise((resolve, reject) => {
          api(Object.assign({}, options, { success: resolve, fail: reject }), ...params);
        });
      }
    }
    复制代码
    // 这样就可以简化微信原生的api
    const getSetting = promisify(wx.getSetting)
    const res = await getSetting()
    复制代码

    但是async 语法也有不好的地方在于异常捕获写起来很难看, 越是复杂的逻辑, 用户捕获异常的catch就越不好处理, 这里可以使用await-to-js来进一步优化

    import to from 'await-to-js'
    // 使用node风格的异常捕获
    const [err, res] = await to(getSetting())
    复制代码
    • 云函数部分
      云函数是一个纯净的node环境, 使用的时候要注意它不支持import语法,在导入的时候需要使用require 例如 const to = require('await-to-js').default;
    2.使用字体图标代替切图

    小程序推荐使用rpx作为尺寸单位, 切图适配的时候, 小图标可能会在缩放的时候失真,推荐使用字体图标。将制作好的字体图标放入小程序的css文件中就好了,我这里是用的阿里icon的图标库, 将base64的css样式直接放在全局的css中

    3.开发工具。

    微信开发工具自带了编译和无法替代的云开发工具, 目前是没有办法摆脱它了。 但是在编辑代码的时候还是可以用其他工具的。可以用vscode作为代码编辑攻击, 安装minapp等插件。微信开发工具作为预览和调试的工具就好

    4.npm支持,debuger

    在云函数中是支持直接使用npm包的, 但是每一个云函数的入口对应一个文件夹, 每一个文件夹需要单独npm。为了可以在本地断点调试云函数,我们必须在云函数下的每一个文件夹install一下。这操作是真的难受。。。

    在开发工具中, 右键云函数文件夹可以开启本地调试, 然后就可以在浏览器中打断点了, 同时, console页面也可以看到云函数的console信息, 注意右边可以切换请求方式。

    代码组织

    先放一下数据库的方案

    前文说过, 云函数每一个文件夹视为一个入口文件,并且需要单独install一下。 我们最少需要4张表,最起码的增删改查就需要16个接口, 一个接口一个入口显然不可能, 所以我们可能需要自己做一下路由的设计。
    考虑到代码的复用, 我将每一个入口作为一个功能块, 将代码的功能拆分成service层、router层、controller层. 在小程序调用云函数的时候传入action字符串作为路由的参数。将对数据库的操作细化,作为service便于复用。 在controller里调用service来处理复杂逻辑。

    1.根据数据库操作编写service

    // user/user.js
    // UserBase 确定每个集合的数据结构
    class UserBase {
      constructor(data) {
        this.openId = data.openId
        this.avatarUrl = data.avatarUrl
        this.city = data.city
        this.country = data.country
        this.gender = data.gender
        this.language = data.language
        this.nickName = data.nickName
        this.province = data.province
        this.signature = null // 签名 
        this.watchList = [] // 关注列表
        this.releaseList = [] // 发布列表
        this.createTime = db.serverDate()
        this.userStatus = 0 // 用户状态 0 正常 1 限制登录
        this.inviteUser = null
      }
    }
    复制代码
    // 这里用来实现对数据库的操作
    class User {
      // 获取用户信息
      async getUserInfo(openId) {
        const [err, {data}] = await to(db.collection('user')
          .where({ openId: openId })
          .get())
        if (err) return Promise.reject(err.errMsg)
        if (Array.isArray(data) && data.length) return data[0]
        else return null
      }
    
      // 创建新用户
      async createUser (userInfo) {
        let [err, res] = await to(db.collection('user').add({ data: new UserBase(userInfo)}))
        if (err) return Promise.reject(err.errMsg)
        return res._id
      }
    }
    复制代码

    2.根据需求调用service的方法, 实现业务

    Controller可以通过继承也可以单独引入进来运行

    // user/userController.js 这里调用service来处理复杂逻辑
    // 根据情况也会调用其他的模块, 这个时候就用callFunction
    // 云函数入口文件
    const User = require('./user.js')
    const cloud = require('wx-server-sdk')
    cloud.init({ env: 'prod-4ygqk'})
    const to = require('await-to-js').default;
    
    class UserController extends User {
      // 处理登录
       async handelLogin(event) {
        const { OPENID } = event
        const [err, res] = await to(this.getUserInfo(OPENID))
        if (err) return {err, res}
        if (res) return {err, res}
        if (!event.loginInfo) {
          return {err: '注册用户失败,请先调用wx.userInfo接口', res}
        }
        event.loginInfo.openId = OPENID
        return this.handelCreateUser(event)
      }
    
      // 注册用户
       async handelCreateUser(event) {
        const { loginInfo, OPENID } = event
        const [err, res] = await to(this.createUser(loginInfo))
        if (err) return {err, res}
        const [_err, _res] = await to(this.getUserInfo(OPENID))
        if (_err) return {err, res: _res}
        return {err, res: _res}
      }
    
      // 通过openId查询用户
      async queryUserByOpenid(event) {
        const { targetUser, OPENID} = event
        // 如果没有传openId进来, 就查询当前用户
        const seatchOpenId = targetUser || OPENID
        const [err, res] = await to(this.getUserInfo(seatchOpenId))
        if (err) return {err, res}
        // 查询是否关注过该用户
        if (res && targetUser) {
          const [error,{result}] = await to(cloud.callFunction({
            name: 'attention',
            data: {
              action: 'queryIsAttention',
              currentUser: OPENID,
              targetUser: targetUser
            }
          }))
          if (error) return {err: error, res: result}
          res.isAttention = result.res
        }
        return {
          res: res,
          err: null
        }
      }
    }
    
    module.exports = UserController
    复制代码

    3.根据路由指派控制器

    这里我们将openId作为用户识别码挂载在event上, 供控制器使用 在Controller需要调用其他模块的Controller时, 也将所需的参数挂载在event上。 这里的event实际上就是这次请求的上下文

    // 云函数入口文件 user/index.js
    const cloud = require('wx-server-sdk')
    cloud.init({ env: 'prod-4ygqk'})
    const UserController = require('./userController.js')
    
    
    // 云函数入口函数
    exports.main = async (event, context) => {
      const wxContext = cloud.getWXContext()
      const { OPENID, APPID } = wxContext
      event.OPENID = OPENID
    
      const user = new UserController()
      const { action } = event
    
      switch (action) {
        case 'login': {
          return user.handelLogin(event)
        };
        case 'createUser': {
          return user.handelCreateUser(event)
        };
        case 'queryUserByOpenid': {
          return user.queryUserByOpenid(event)
        };
      }
    }
    复制代码

    4.其他复杂情况

    • 需要调用其他模块的
    async queryArticlebyId(event) {
       const { OPENID, id } = event
       // 查询对应的文章内容
       let [err, res] = await to(article.queryArticlebyId(id))
       // 有错误返回错误, 没有查到返回空
       if (err) return {err, res}
       if (!res) return {err, res}
       // 查询文章用户, 调用user模块
       const [error, { result }] = await to(cloud.callFunction({
         name: 'user',
         data: {
           action: 'queryUserByOpenid',
           currentUser: event.OPENID,
           targetUser: res.openId
         }
       }))
       // 调用userInfo错误
       if (error) return {err: error, res}
       // userInfo自己的错误
       if (result.err) return {err: result.err, res: res}
       res.user = result.res
    
       // 查询用户是否已经收藏, 调用收藏模块
       const [collectionErr, collectionRes] = await to(article.queryIsCollection(OPENID, id))
       res.isCollection = collectionRes
       return {res, err: null}
     }
    复制代码
    • 需要异步循环的
      异步迭代一直是一个问题。一方面涉及到并发和效率, 另一方面又涉及到异常处理。 如果按照线性的async方式查询会严重的影响到速度。 所以必须使用Promise.all的方式。 以下代码缺少异常处理
     async queryArticleAll(event) {
        const { userInfo, size = 10, page, sort = 'desc', orderBy = 'createTime' } = event
        let ArticleList = await article.queryArticleAll({ size, page, sort, orderBy })
        if (ArticleList.length === 0) {
          return []
        }
    
        const funList = ArticleList.map(async article => {
          // 查询文章的作者
          const [err,{result}] = await to(cloud.callFunction({
            name: 'userInfo',
            data: {
              action: 'queryUserByOpenid',
              currentUser: event.OPENID,
              targetUser: article.openId
            }
          }))
          let user = result.res || null
          article.user = user
          return article
        }) 
    
        return {res: await Promise.all(funList), err: null}
      }
    
    复制代码

    最后

    其他就没有啥子东西可写了。后面使用http调用云函数的以后再继续尝试。 在调试云函数的时候几乎花掉了全部的耐心....最后贴代码和地址

    https://github.com/xanggang/picture-miniapp
    复制代码

    最近微信关闭了改名的通道, 暂时改不了名字和头像了...

    展开全文
  • 微信云开发使用

    2020-04-10 16:27:58
    1、新建一个小程序项目(不勾选云开发) 原因:勾选后程序会给我们创建一个模板,代码冗余 2、进入项目 点击左上角的云开发 点击开通 3、配置云开发环境 打开project.config.json文件,添加 { "description": ...

    1、新建一个小程序项目(不勾选云开发)

    原因:勾选后程序会给我们创建一个模板,代码冗余

    2、进入项目

    点击左上角的云开发
    在这里插入图片描述
    点击开通

    3、配置云开发环境

    打开project.config.json文件,添加

    {
    	"description": "项目配置文件",
    	"cloudfunctionRoot":"cloud",//添加这个环境
    	"packOptions": {
    		"ignore": []
    	},
    

    打开app.js文件,加入以下配置

    App({
      onLaunch: function () {
       //云开发初始化
       wx.cloud.init({
         env:""//里面填写环境ID
       })
      }
    

    环境ID在云开发-----设置页面
    在这里插入图片描述
    在项目根目录下新建一个cloud文件夹

    4、如果后面更改了集合名称,要重新设置数据库用户权限才能继续请求数据

    展开全文
  • 微信云开发简介

    2020-08-12 13:37:21
    2.函数(权限) 3.数据库操作(权限) const db = wx.cloud.database(); //初始化数据库 增加 db.collection('cloud').add({ data: { name: 'cloud' } }).then(res => { console.log(res, '插入数据') ...
  • 微信云开发数据读取

    千次阅读 2019-01-08 10:03:15
    // 1. 获取数据库引用 const db = wx.cloud.database() // 2. 构造查询语句 // collection 方法获取一个集合的引用 // where 方法传入一个对象,数据库返回集合中字段等于指定值的 JSON 文档。API 也支持高级的查询...
  • 微信云开发使用教程

    2019-01-13 18:45:16
    本文来自Cocos官方论坛,感谢「fjk」的分享!前言微信云开发技术可以让我们免费方便的使用服务器的部分功能,对于微信小游戏非常有帮助。本教程只针对新人,因为我自己就是个...
  • 微信开发者工具1.02.1905151(需要下载微信开发者工具新版本,包含了云开发的功能模块) 项目初始化 新建项目 新建后的项目结构如图所示,较之前的项目结构,多了cloudfunctions,可以指定环境(目前可以创建两...
  • 请教一下,微信小程序和微信云函数的收费问题,请问,到底是微信小程序要开始收费,还是微信云函数要收费,微信云开发中收费的项目有哪些?
  • 基于微信小程序云开发的租房平台类微信小程序,带完整的管理员后台。快速完成微信小程序前后端的搭建,后台完全使用微信小程序云开发,不依赖服务器,无需购买服务器即可使用。
  • 微信 云开发获取openid 时失败如下:VM1184:1 [云函数] [login] 调用失败 Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail cloud function service error code -501005,...
  • 都是前端通过js编写后端代码,无需购买服务器。</p>
  • 1.进入项目,点击这个云开发 2.进入云开发的设置,这里有一个环境ID 3.把这个ID写进APP.vue里面 4.在存储中新建文件夹然后上传文件就可以使用了 5.复制文件的FILE id就可以用了
  • 微信云开发一直提示云函数部署失败解决办法 今天刚开始上手微信云开发,新建了一个云开发项目,官方自动集成了云开发QuickStart项目,然后再点击获取openid,像下图这样. 然后点进去就是好多人都遇到的调用失败 我明明...
  • 微信云开发数据库增删改查

    千次阅读 2018-12-20 16:46:12
    数据库的增删改查 增 注意 data内值格式应为: name:this.data.name, 使用setdata只是为了对前端做一遍更新 const db=wx.cloud.database() const _=db.commond var that=this ... databaseValueName:V...
  • 关于微信云开发小程序的一些坑

    千次阅读 2019-08-10 00:07:57
    腾系的抠门是出了名的,这云开发名义上是给开发者提供免费的服务器和数据库,实际上限制多多,坑不断,很多限制文档里要么不提,要么隐蔽得很深,等你发现,架构已经设计完,代码都码了七七八八,最终逼的你要么充钱...
  • 首先新建一个微信小程序,生成如下目录结构 根目录下新建 cloudFunction 目录 打开 project.config.json 配置函数的根目录 { "description": "项目配置文件", "cloudfunctionRoot":"/cloudFunction",//...
  • ArthurSlog SLog-68 Year·1 Guangzhou·China Sep 11th 2018 ...常道无名 唯德以显之 至德无本 顺道而成之 祸福无门 惟人自召 善恶之报 如影随形 ...开发环境MacOS(High Sierra 10.13....
  • 在uni-app中使用微信云开发 HBuiderX中: 使用HBuilderX创建一个uni-app应用 在文件夹目录下manifest.json-源码视图中-mp-weixin下配置申请好的AppId(申请地址:https://mp.weixin.qq.com/cgi-bin/wx?token=&...
  • const db=wx.cloud.database() const searchdata=db.collection("userdata") //指定查询哪个数据库 searchdata.where({ datainfo:{ //指定查询字段 address:db.RegExp({ //模糊查询 ...
  • 基于微信云开发-租房小程序-带管理员后台 文章目录基于微信云开发-租房小程序-带管理员后台项目简介目录结构功能说明配置过程界面预览结语参考文档 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来...
  • mpvue+微信云开发 数据库所踩的坑

    千次阅读 2019-01-08 20:18:34
    前端部分编辑完了,暂时不想弄腾讯云那一套,就看上了最近刚出来的云开发。作为课程设计来说,云开发已经足够了。但是网上mpvue+云开发的文章少的可怜,还互相抄袭,甚至代码都有一定问题,坑了我不少时间。 1.初始...

空空如也

1 2 3 4 5 ... 20
收藏数 5,997
精华内容 2,398
关键字:

微信云开发