`

小程序调用云端函数并将返回值存在全局变量中

 
阅读更多
环境配置:
本地电脑下载node.js 安装
安装完成后,在cmd控制台输入node -v和npm -v,这两个打印版本号的命令可以判断node和npm是否安装成功



云端需要新建函数:

js中文件如下
主要操作就是获取页面传递的参数a和b,然后做运算后返回。同时在新建云函数时,需要点击右键选择在终端中打开,执行:npm install --production   安装wx-server-sdk
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()

// 云函数入口函数
exports.main = (event, context) => {
  
  //event 指的是触发云函数的事件,当小程序端调用云函数时,event 就是小程序端调用云函数时传入的参数
  sum = event.a + event.b
  // 获取 WX Context (微信调用上下文),包括 OPENID、APPID、及 UNIONID(需满足 UNIONID 获取条件)
  const wxContext = cloud.getWXContext()

  return {
    sum,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
  }
}


函数写完记得右键--上传所有文件


页面的js关键代码
//此语句引用后即可以访问app.js中设定的全局变量了
const app = getApp()

//button的提交方法
formSubmit(e) {

    // 调用云函数
    wx.cloud.callFunction({
       name: 'userlogin',
       data: {
            a: 12,
            b: 19
        },
       success: res => {
         //给全局变量赋值
         app.globalData.openid = res.result.openid
         app.globalData.appid = res.result.appid
         app.globalData.unionid = res.result.unionid
       },

       fail: err => {
         console.error('[云函数] [login] 调用失败', err)
        //失败后可以跳转到其他页面 
        //  wx.navigateTo({
        //    url: '../deployFunctions/deployFunctions',
        //  })
       }
     })
  }



页面部分代码:
<view>
<form bindsubmit="formSubmit" bindreset="formReset">
  <view class='main'>
    <lable class='lable'>账号:</lable>
    <input class='input' type='text' bindinput="getUserID" placeholder='请输入用户名'/>
  </view>
  <view class='main2'>  
    <lable class='lable'>密码:</lable>
    <input class='input' type='text' bindinput="getPwd" password placeholder="请输入密码"/>
  </view>

  <view class='bottom'>
    <button type='primary' form-type='submit'>登陆</button>
    <button type='default' form-type='reset'>重置</button>
  </view>
</form>
</view>



app.js中的全局变量设置:

//app.js
App({

  globalData: {
    appid: '',//appid需自己提供,此处的appid我随机编写  
    unionid: '',//secret需自己提供,此处的secret我随机编写 
    openid: '', //
  }
})




关于微信小程序中globalData的设置与读写
参考:https://blog.csdn.net/sinat_33937178/article/details/79124022
分享到:
评论

相关推荐

    全局变量的使用,函数func1中引用全局变量count,函数func1中调用函数func2

    全局变量在编程中是一种特殊的变量,它在程序的整个生命周期内都存在,可以在程序的任何地方被访问。这种变量在程序的任何函数内部都可以读取或修改,因此它提供了在整个程序范围内共享数据的一种方式。标题提到的...

    c函数调用-不使用函数返回值

    在C语言中,函数是程序的基本构建块之一,用于实现特定功能并可被多次调用。函数不仅可以接受参数,还可以返回一个值。然而,在某些情况下,程序员可能会选择不使用函数的返回值,这通常是因为他们对函数执行的操作...

    【小程序云开发】本地调试和云端测试的结果不一致,返回值result为null

    1.调用云函数的时候,云函数调试时返回值不是null,但是到了前端拿到的result却是null。 2.调试云函数,本地调试和云端测试/真机测试结果不一样。表现为本地测试正常运行,云端和真机出错。 解决方法:异步操作的...

    labview功能性全局变量的详细使用

    在LabVIEW中创建功能性全局变量,通常通过"函数选板" -&gt; "程序结构" -&gt; "全局变量"来实现。这将生成一个空白的全局变量VI,你可以为其命名并设定数据类型。接着,你需要在每个需要使用该全局变量的VI中引用这个VI,...

    监视进程调用了哪些API的工具 显示函数调用顺序和次数,返回值

    本文将深入探讨一种工具,该工具能够帮助我们监视进程对API的调用,显示函数调用的顺序、次数以及返回值,这对于调试、性能分析以及安全检查至关重要。 首先,我们要理解API监视器的工作原理。这类工具通常会插入到...

    C++中类使用全局变量

    在C++编程语言中,全局变量是在程序的任何作用域之外声明的变量,可以在程序的多个函数或类中被访问。它们在整个程序的生命周期内都存在,从程序开始执行到结束时保持其值。全局变量的使用有其优点,如共享数据和...

    C/C++ 函数调用与函数返回值

    形参和实参只是名字相同,各自占有各自的内存空间和生存周期,因此他并不能改变主调函数中的变量。  3、地址参数  传址调用:传送的是变量的地址,尽管主函数和被调函数各自在自己的变量上操作,但他们的地址是

    python使用threading获取线程函数返回值的实现方法

    `trace_func`接受一个函数引用`func`以及任意数量的参数`*arg`,在内部调用这个函数并将返回值保存到`MyThread`实例的`ret_flag`属性中。这样,`ret_flag`的值就可以反映出所有线程函数的返回值总和,如果为0,则...

    C++全局变量初始化的一点总结

    C++中的全局变量初始化是一个重要的话题,涉及到程序的正确性和可预测性。全局变量,即具有静态存储期的变量,其生命周期始于程序开始,终于程序结束。本文将深入探讨全局变量初始化的时机、方式以及一些处理特殊...

    执行外部exe获取返回值

    1. **进程间通信(Inter-Process Communication, IPC)**:当一个程序(主程序)需要调用另一个外部exe(子程序)并获取其执行结果时,就涉及到进程间通信。在Windows操作系统中,常见的IPC方式有管道、共享内存、...

    QT 不同文件直接变量调用 示例

    本示例将探讨如何在QT中实现跨文件的全局变量调用,以及如何调用函数,以提高代码的可读性和可维护性。 首先,理解QT中的模块化和文件组织是非常重要的。在QT中,我们通常会把相关的类和函数放在单独的`.h`(头文件...

    易语言动态调用DLL函数

    易语言动态调用DLL函数源码,动态调用DLL函数,LoadLibraryExA,LoadLibraryA,FreeLibrary,GetProcAddress,CallWindowProc1,CallWindowProc

    VC中的全局变量.doc

    - **初始化**:全局变量默认在程序启动时自动初始化,如果在定义时没有赋值,整型变量会被初始化为0,非静态类对象则会调用默认构造函数。如果在`Globs.h`中已经初始化,那么在`Externs.h`中不应再次赋值,避免重复...

    详解微信小程序的不同函数调用的几种方法

    在微信小程序开发中,函数调用是实现各个功能的关键,本文将详细介绍几种常见的函数调用方法,帮助开发者更好地理解和运用。 一、调取参数直接调用 在同一个JS文件内部,可以直接调用定义的函数。例如,我们有一个`...

    Python语言基础:局部变量和全局变量.pptx

    在`sum`函数执行后,全局变量`total`的值并没有改变,因此`print ("函数外是全局变量 : ", total)`将输出0。 **作用域(Scope)**: 作用域是变量存在的区域。Python有三种主要的作用域: 1. **局部作用域(Local ...

    C语言面试题大汇总之华为面试题:1、局部变量能否和全局变量重名;2、如何引用一个已经定义过的全局变量;3、全局变量可不可以定义在可被多个.C文件包含的头文件中 为什么;4、语句for( ;1 ;)有什么问题 它是什么意思……

    程序的局部变量存在于堆栈中,全局变量存在于静态区中,动态申请数据存在于堆中。 七、typedef和struct typedef union {long i; int k[5]; char c;} DATE; 和 struct data { int cat; DATE cow; double dog;} too;...

    关于函数返回值的讨论

    4. **表达式作为返回值**:`return`语句后可以跟任何表达式,如变量、常量、计算式,甚至是其他函数的调用。 五、函数中的逻辑控制与`return` 函数可以包含多个`return`语句,通过逻辑判断来决定哪个`return`语句会...

    C语言中如何使用全局变量示例

    全局变量在程序的生命周期内一直存在,即使在函数调用结束后也不会被销毁。下面我们将详细探讨如何在C语言中使用全局变量以及在多文件项目中的处理方法。 1. **全局变量的声明与初始化** 全局变量在程序的任何地方...

    静态全局变量,静态局部变量,全局变量,局部变量

    - **静态局部变量**虽然在函数内部定义,但存储在静态存储区中,整个程序运行期间都存在。 #### 四、面向过程设计中的static关键字 - **静态变量**: 在程序多次调用过程中保持原有的赋值状态不变。 - **变量作用...

    局部变量和全局变量总汇

    这意味着,全局变量可以在程序中的任何地方被访问和修改,除非特定区域中定义了同名的局部变量,这种情况下局部变量会覆盖全局变量。 #### 二、局部变量与全局变量的特性及应用 1. **局部变量能否和全局变量重名?...

Global site tag (gtag.js) - Google Analytics