收藏
回答

云函数本地调用成功,云端调用失败?

函数名login index.js:// cloud function - login

const cloud = require("wx-server-sdk");

cloud.init({

  env: 'test-9gnvx26ea1ae24cd',

  // env: "release-824dd3",

  traceUser: true

});


/**

 * 将经自动鉴权过的小程序用户 openid 返回给小程序端,

 * 若取得的数据多于一条, 则以 data[0] 为准

 */

exports.main = async(event, context) => {

  // console.log(event, context);

  // 获取 WXContext (微信调用上下文), 包括 OPENID, APPID, UNIONID(需满足获取条件)

  const wxContext = cloud.getWXContext();

  return await cloud.database().collection("adminInfo").where({

    openid: wxContext.OPENID

  }).get().then(r => {

    console.log("[result]", r);

    const isAdmin = r.data.length && r.data[0].isAdmin;

    if (isAdmin{

      return {

        openid: wxContext.OPENID,

        unionid: wxContext.UNIONID,

        isAdmin: true,

        name: r.data[0].name,

        isSuper: r.data[0].isSuper

      };

    } else {

      return {

        openid: wxContext.OPENID,

        unionid: wxContext.UNIONID,

        isAdmin: false

      };

    }

  }).catch(err => {

    return {

      err: true,

      errMsg: err

    }

  });

}

报错【login】call failed Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail requestID , cloud function service error code -501000, error message Environment not found; at cloud.callFunction api; 

本地调试成功截图如上


关闭本地调试截图

package.json文件 {

  "name": "login",

  "version": "1.0.1",

  "description": "Login and check users' auth.",

  "main": "index.js",

  "scripts": {

    "test": "echo \"Error: no test specified\" && exit 1"

  },

  "author": "Dorence Deng",

  "license": "MIT",

  "dependencies": {

    "wx-server-sdk": "latest"

  }

}



回答关注问题邀请回答
收藏

2 个回答

  • 曹孟良
    曹孟良
    2021-11-10
    const cloud = require("wx-server-sdk");
    cloud.init({
      env: cloud.DYNAMIC_CURRENT_ENV,
      // env: "release-824dd3",
      traceUser: true
    });
    exports.main = async(event, context) => {
      // console.log(event, context);
      // 获取 WXContext (微信调用上下文), 包括 OPENID, APPID, UNIONID(需满足获取条件)
      const wxContext = cloud.getWXContext();
      return await cloud.database().collection("UserInfo").where({
        openid: wxContext.OPENID
      }).get().then(r => {
        console.log("[result]", r);
        const isAdmin = r.data.length && r.data[0].isAdmin;
        if (isAdmin) {
          return {
            openid: wxContext.OPENID,
            unionid: wxContext.UNIONID,
            isAdmin: true,
            name: r.data[0].name,
            isSuper: r.data[0].isSuper
          };
        } else {
          return {
            openid: wxContext.OPENID,
            unionid: wxContext.UNIONID,
            isAdmin: false
          };
        }
      }).catch(err => {
        return {
          err: true,
          errMsg: err
        }
      });
    }
    

    我复制了你的代码,除了改了下数据库的名字,还有env,并没有复现你的问题,可以调用成功的。你看看这是我的本地的调用方式,你本地代码是怎么调用的,发出来看看

    这是我本地调用的代码  
          wx.cloud.callFunction({
            name'logincopy',
            success(res){
              console.log('test::::',res)
            },
            fail(err){
    
    
              console.log('test::::',err)
            }
          })
    
    2021-11-10
    有用
    回复 15
    • Tpy
      Tpy
      2021-11-10
      也不行
      2021-11-10
      回复
    • 曹孟良
      曹孟良
      2021-11-10回复Tpy
      云开发——云函数——日志,你看看日志里详细报的是啥错,是哪一行
      2021-11-10
      1
      回复
    • Tpy
      Tpy
      2021-11-10回复曹孟良
      日志里啥都没有
      2021-11-10
      回复
    • 曹孟良
      曹孟良
      2021-11-10回复Tpy
      我复制了你的代码,只改了下env,调用了下,完全没有复现你的问题啊, 你看看我写的代码,我更新在顶楼了
      2021-11-10
      1
      回复
    • Tpy
      Tpy
      2021-11-10回复曹孟良
      我是小白 这是我在github上面找的小程序想根据我自己需求改一下 源码地址https://github.com/star-du/cloud-mini-app
      2021-11-10
      回复
    查看更多(10)
  • 没事
    没事
    2021-11-10

    找不到云环境...从本地上传更新一下云函数试试?

    2021-11-10
    有用
    回复 20
    • Tpy
      Tpy
      2021-11-10
      上传并部署所有文件吗?
      2021-11-10
      回复
    • 曹孟良
      曹孟良
      2021-11-10回复Tpy
      嗯试试
      2021-11-10
      回复
    • Tpy
      Tpy
      2021-11-10回复曹孟良
      试了也不成功...
      2021-11-10
      回复
    • 没事
      没事
      2021-11-10回复Tpy
      如果你想在云端安装依赖,那就选“上传并部署,在云端安装依赖”,如果不想,就上传所有文件
      2021-11-10
      回复
    • Tpy
      Tpy
      2021-11-10回复没事
      都试过了 都报这个错
      2021-11-10
      回复
    查看更多(15)
登录 后发表内容