美文网首页web前端微信小程序
小程序云函数调用失败解决方案

小程序云函数调用失败解决方案

作者: 徐喷以烟 | 来源:发表于2019-01-05 21:56 被阅读0次

    问题描述

    以官方提供的“小程序云开发快速启动模板”为例。
    获取openid失败:

    云开发模板测试界面

    进行“点击获取openid”测试失败,出现下图所示的提示,并且控制台会提示以下错误信息:
    VM86:1 [云函数] [login] 调用失败 Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail cloud function service error code -504002, error message Function not found: [login]; at cloud.callFunction api;

    login云函数调用失败

    出错原因

    云端运行环境为 Node.js,需要先在本地安装 Node.jsnpm才能顺利测试。同时还要在云函数目录下安装 wx-server-sdk 依赖:
    npm install --save wx-server-sdk

    详细内容参见官方文档https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-server-api/

    解决方案

    1. 安装node.jsnpm
    • node.js 下载地址
      https://nodejs.org/en/
    • 安装node.js时会同时安装npm
    • 测试安装是否成功
      安装完成后打开cmd:
      输入node -v 来测试 node.js
      输入npm -v 来测试 npm
    1. 安装wx-server-sdk依赖。
    • 在cmd中首先通过cd 云函数路径的命令,定位到云函数目录,这里要定位到某个具体的云函数文件夹内,如login函数则要定位到login文件夹内。然后再执行npm install --save wx-server-sdk命令,安装wx-server-sdk依赖。对于每一个你创建云函数都要安装该依赖。

    • 如果在执行安装命令后出现类似错误提示:rollbackFailedOptional: verb npm-session ****************,这是由于npm官方库是国外的网站,在访问时可能由于网络原因导致异常。
      解决方案:执行npm config set registry "http://registry.npm.taobao.org"命令,将官方库替换为淘宝库即可。

    • 执行命令后可能会出现以下警告:

    npm WARN **** No description 
    npm WARN **** No repository field
    

    直接忽略即可,并不会影响后续的云函数功能。成功安装依赖后,相应的云函数文件夹将生成一个package-lock.json文件。

    安装前的目录 安装后的目录
    1. 上传云函数
    • 在相应的云函数文件夹上右键,选择“上传并部署:所有文件”。
    上传并部署
    1. 最终测试


      云开发模板测试界面

      进行“点击获取openid”测试,如图所示,成功调用云函数,并获取openid,说明开发环境配置成功。


      成功调用login云函数并获取到openid

    相关文章

      网友评论

        本文标题:小程序云函数调用失败解决方案

        本文链接:https://www.haomeiwen.com/subject/lvodrqtx.html