前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序中使用云函数进行开发

微信小程序中使用云函数进行开发

作者头像
程序你好
发布2021-07-23 14:23:01
6.3K0
发布2021-07-23 14:23:01
举报
文章被收录于专栏:程序你好程序你好

微信小程序的云函数是一段运行在云端(服务器端)的代码,无需管理服务器,在开发工具内编写、一键上传部署即可运行后端代码。在物理设计上,一个云函数可由多个文件组成,占用一定量的 CPU 内存等计算资源,各云函数完全独立;可分别部署在不同的地区。

小程序内提供了专门用于云函数调用的 API。开发者可以在云函数内使用 wx-server-sdk 提供的 getWXContext 方法获取到每次调用的上下文(appid、openid 等),无需维护复杂的鉴权机制,即可获取天然可信任的用户登录态(openid)。只需编写函数代码并部署到云端即可在小程序端调用,同时云函数之间也可互相调用。

一个云函数的写法与一个在本地定义的 JavaScript 方法无异,代码运行在云端 Node.js 中。当云函数被小程序端调用时,定义的代码会被放在 Node.js 运行环境中执行。

1、第一步

在项目根目录找到 project.config.json 文件,新增 cloudfunctionRoot 字段,指定本地已存在的目录作为云函数的本地根目录。

代码语言:javascript
复制
  "cloudfunctionTemplateRoot": "cloudfunctionTemplate",
  "cloudfunctionRoot": "./functions/",

设置完成之后,查看资源管理器,指定的目录已经变成云函数的目录。yydc是我项目云函数环境的名字。

2、选中云函数目录,右键菜单点击“新建Node.js云函数”,输入想创建的云函数的名字,自动创建云函数目录。系统会同时创建config.json,index.js,package.json这三个文件。

其中index.js是云函数实体文件。

我在测试过程中发现,有 wx-server-sdk 创建失败的情况,修改package.json 中依赖设置为:latest即可解决。

"dependencies": {

"wx-server-sdk": "latest"

}

3、编辑云函数文件,写个简单HelloWorld

代码语言:javascript
复制
// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()

  return {
    say: "hello world!"
  }
  /* return {
    event,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
  } */
}

4、上传云函数

选中我们写好的云函数目录,右键点击菜单“上传并部署:云端安装依赖(不上传node_modules)”,上传我们写好的云函数到云端。

注意:刚开始我忘了上传,导致云函数访问不正常,一直执行默认生成的代码。

5、测试云函数

打开云开发控制台,选中左上方“云函数”按钮,可以查看我们定义的所有云函数。

点击右侧“云端测试”链接

在右侧窗口输入云函数的输入参数(以json串的形式),点击下方“运行测试”按钮,运行云函数进行测试。

运行测试完成后下方会出现云函数执行情况

可以取日志列表,查看调用日志信息。

6、小程序中使用云函数

在小程序中编写调用代码

代码语言:javascript
复制
callCloldFunction:function(){

      wx.cloud.callFunction({
        // 云函数名称
        name: 'loadAdd',
        // 传给云函数的参数
        data: {
          word: 'this'
        },
        success: function(res) {
          console.log(res.result) // 3
        },
        fail: console.error
      })
    },

调用并返回:

最后说下费用问题,云函数本身提供一些免费调用次数,超过是要收费的。而且在云函数中访问外部资源是没有免费额度的。最重要的一点“后付费”,使用的千万注意,千万不要因为访问量过大造成巨额损失。

其实,个人总体感觉这个云函数有点鸡肋,不如自己弄个服务器写后台,折腾云函数各种限制,又收费,实在没有使用必要。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序你好 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云函数
云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。云函数是实时文件处理和数据处理等场景下理想的计算平台。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档