收藏
回答

wx-server-sdk@2.5.2似乎有问题

框架类型 问题类型 终端类型 AppID 环境ID 基础库版本
小程序 Bug 工具 wx953c493d3c1091f7 dev-1gwy6ymf62b7bb20 2.14.1

今天突然云函数炸裂了,总是报告【Environment not found】什么什么的。查了半天,最后发现,应该是`2.5.2`这个版本的wx-server-sdk有问题。回滚写死到`2.5.1`,一切安好。


重现:

  1. 创建简单云函数
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})



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


  // 如果云函数所在环境为 abc,则下面的调用就会请求到 abc 环境的数据库
  const dbResult = await cloud.database().collection('user').get()


  return {
    dbResult,
    ENV,
    OPENID,
    APPID,
  }
}
  1. 确认wx-server-sdk版本未2.5.2
{
  "name""hello-jeff",
  "version""1.0.0",
  "description""",
  "main""index.js",
  "scripts": {
    "test""echo \"Error: no test specified\" && exit 1"
  },
  "author""",
  "license""ISC",
  "dependencies": {
    "wx-server-sdk""2.5.2" <---- 看这里哦
  }
}


  1. 上传,跑一下,譬如【云端调试】,会报错
  2. 修改版本未2.5.1,重新上传部署,再跑,就正常了(当然你得有user这个collection)
回答关注问题邀请回答
收藏

1 个回答

  • jeff
    jeff
    2021-07-06

    留意到官方已经发布2.5.3,实测已经修复问题。


    diff

    199d198
    <             providerInitOptions.env = providerInitOptions.env || process.env.TCB_ENV;
    218c217
    <         return this.isCloudInstance ? Object.assign(Object.assign(Object.assign({ throwOnCode: false }, this.cloudInstanceOptions), { version: `wx-server-sdk/${version}` }), wxLocalSCFConfig) : Object.assign(Object.assign(Object.assign({ throwOnCode: false }, config), { version: `wx-server-sdk/${version}` }), wxLocalSCFConfig);
    ---
    >         return this.isCloudInstance ? Object.assign(Object.assign(Object.assign(Object.assign({ throwOnCode: false }, this.cloudInstanceOptions), { version: `wx-server-sdk/${version}` }), wxLocalSCFConfig), { env: process.env.TCB_ENV }) : Object.assign(Object.assign(Object.assign(Object.assign({ throwOnCode: false }, config), { version: `wx-server-sdk/${version}` }), wxLocalSCFConfig), { env: process.env.TCB_ENV });
    
    2021-07-06
    有用 1
    回复
登录 后发表内容