小程序之云函数的创建与使用

小程序云开发之云函数

云函数的作用

我所知道的是,云函数可以做一些前端做不了,必须在服务器端做的复杂的操作。

比如:
数据库的多条纪录同时更新与数据库的多条纪录同时删除,这是在前端无法实现的,然后就可以通过云函数来实现。

创建云函数

我们需要在微信开发者工具的文件管理里面创建一个目录和一个nodejs云函数。

创建好云函数后需要在根目录下的 project.config.json 中添加如下代码:

{
    "cloudfunctionRoot": "./functions/"
}

当我们创建好云函数后,程序会自动给我们配置一些代码如下:

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

cloud.init() //初始化云函数
const db = cloud.database()
const _ = db.command
// 云函数入口函数
//event:触发云函数的事件
exports.main = async (event, context) => {
     const {OPENID, APPID, UNIONID} = cloud.getWXContext()

      return {
        OPENID,
        APPID,
        UNIONID,
      }
}

注:在刚创建的云函数文件中,没有cloud.init()这个语句,我们需要自己添加进去

使用云函数

当我们创建好云函数后,就可以去使用它啦!

首先

我们需要将自己创建的云函数上传并部署到云端。

注:需要选择云端安装依赖(不上传node_modules)这一项

然后

我们需要在前台的js文件中去使用。
这里,我会在onReady生命周期使用。代码如下:

wx.cloud.callFunction({
  name: 'sum',
  complete: res => {
    console.log('callFunction test result: ', res)
  }
})

name:你所创建的云函数的名字

res:得到的是云函数执行后return的结果

比如:我们在云函数文件中添加如下代码:

 /*return {
    OPENID,
    APPID,
    UNIONID,
  }*/

 return {
    count:3
 }

注:注释的代码是上面将要替换掉的,替换为count:3

前端运行得到的结果就是count:3

所以

前端res得到的结果就是云函数return回去的值。

到这里,应该就知道云函数是如何工作的了吧。

使用云函数进行多条纪录更新

数据库结构:

{
    "_id": "XBCTC8DR1TiNy2Ad",
    "_openid": "oB-Ir5LDd_zO1lLCVs4kMSiLw-Km",
    "username":"xiaoming",
    "age":19
}

云函数代码:

const cloud = require('wx-server-sdk')
cloud.init();
const db = cloud.database()

exports.main = async (event, context) => {
  try {
    return await db.collection('testInfo').where({
      age:80
    }).remove()
  } catch (e) {
    console.error(e)
  }
}

使用云函数后,数据库结构里面的age将会改为80

注:以上便是云函数的创建与使用了,因初学小程序,若有不足之处,请多多指正。

原文地址:https://www.cnblogs.com/xiaojianwei/p/10107717.html

时间: 2024-08-29 10:46:40

小程序之云函数的创建与使用的相关文章

前端随心记---------小程序的云函数

小程序的云函数开发: 开启小程序的云开发模式: 当每次添加新的函数时,都需要手动进行上传,需支持npm时要在项目开启nom支持. 云函数的增删改查: 增: insert: function () { db.collection('user').add({ data: { name: 'may', age: 18 }, success: res => { console.log(res); }, fail: err => { console.log(err); } }) }, 改: updata

微信小程序之使用函数防抖与函数节流

函数防抖和函数节流都是老生常谈的问题了.这两种方式都能优化 js 的性能.有些人可能会搞混两个的概念.所以,我以自己的理解,来解释这两个概念的含义.并且列举在小程序中这两个方法的使用. 函数防抖: 英文 debounce 有防反跳的意思,大致就是指防止重复触发. 那么,函数防抖,真正的含义是:延迟函数执行.即不管debounce函数触发了多久,只在最后一次触发debounce函数时,才定义setTimeout,到达间隔时间再执行 需要防抖的函数. 用处:多用于 input 框 输入时,显示匹配的

小程序结合云开发获取小程序码

最近开发小程序遇到一个生成小程序码的功能,常规操作是通过以下接口请求: POST https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN 但是今天突然不想走寻常路,决定用一用云开发玩一玩. 话不多说,码它! wxml: <button bindstap="creatCode">点击获取</button> 云函数,我定义了一个getcode函数,首先往函数下的config.json文件配

小程序开发-云数据库读取

小程序云开发本身配套有数据库 在读取数据到本地存储的时候,怎么也存不了,折腾了半天,其实也挺简单的 const db = wx.cloud.database() const promise = db.collection('doctors').get({ success(res){ this.setData({ doctors:res.data }) } }) 第一反应是这么写的,修改之后 var that=this const db = wx.cloud.database() const pr

4-微信小程序开发(小程序默认页面函数说明)

https://www.cnblogs.com/yangfengwu/p/11601299.html 首先说一下,怎么让自己的一个项目更改名字成为一个新的项目 然后用软件导入项目即可 注:如果没有改文件里面的那个"projectname": "lesson3",  ,用软件打开的时候,你会发现 这个地方还会显示lesson2,所以一定要按照上面两步修改完再导入工程, 如果没有修改文件里面那个"projectname": "lesson3

微信小程序开发(二)创建一个小程序页面

为了方便讲解,我们将上篇博客创建的小程序除了project.config.json和sitemap.json两个文件保留,其他全部删除(这两个文件存的是小程序的创建信息,删掉会有报错提示). 接下来我们创建如下文件,先不写内容. 写入如下代码: // app.js App({}) // 注册小程序 // index.js Page({}) // 注册页面 // app.json { "pages": [ "qrcode/index/index"  // 页面路径 ]

微信小程序开发(一)创建一个小程序Hello World!

开发微信小程序并不是很难,网上有很多小程序开发资料,尤其是微信官方的<小程序开发指南>最详细. 下面是我开发小程序的历程: 第一步,请前往https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html 微信开发者工具下载页面根据自己的操作系统下载对应的安装包进行安装. 第二步,打开微信开发者工具,选择新建小程序项目. 红框里面可以选择 测试号 .AppID可以自己去注册.小程序使用js开发的,所以有js开发经验的很快就可以入门并

微信小程序开发(二)-----项目的创建

项目创建的步骤:(以mac版为例) 1.在"应用程序"中,双击"微信web开发者工具.app", 如图: 2. 选择类型 3.点击"+" 4.点击无AppID 注:因为没有开发资格所以要选择无AppID 5.填写项目名称和项目目录 注意两点: 1.项目文件夹不能用中文; 2.新建项目文件夹要建一个空的文件夹. 6.新建之后的文件目录结构 app.js------应用程序逻辑 app.json------应用程序配置 app.wxss------应

任务清单丨小程序java云服务器配置123

以阿里云服务器为案例,后台使用java 及java web server 相关技术,其他方案基本类同 root账户购置云服务器的时候,直接设置好密码,当然也可以使用密匙 ssh远程开通有了ssh这个神器就可以远程命令行下执行任务 挂载数据盘前期不用买太大,根据业务发展需要自行扩容,需要自己去挂载 jdk安装和配置下载,解压,配置环境变量,jdk9中发现和jre9已经分类开了,具体缘由还没有细看 tomcat下载,解压即可,依赖前面的jre和环境变量 nginx一般一台机器复用的话,大师兄是比较喜