c***@qq.com
c***@qq.com
  • 发布:2023-02-23 20:02
  • 更新:2023-02-24 17:16
  • 阅读:369

云对象使用uniCloud.databaseForJQL插入数据,提示不支持的变量:db.env.choose

分类:uniCloud

云对象使用uniCloud.databaseForJQL插入数据,提示不支持的变量:db.env.choose
使用本地云对象调试是成功的,就上传到云后提示失败,详细如下。


19:59:43.771 [云端运行:阿里云:mo-question-bank]云对象ext-question-bank上传完成,开始运行...  
19:59:57.607 [云端运行:阿里云:mo-question-bank]运行状态:失败  
19:59:57.616 [云端运行:阿里云:mo-question-bank]运行结果:  
19:59:57.623 [云端运行:阿里云:mo-question-bank]运行日志:  
    {  
  uniPlatform: 'web',  
  source: 'open_api',  
  clientIP: '172.28.211.104',  
  userAgent: 'Java/1.8.0_152',  
  secretType: 'none',  
  requestId: 'DAD30B3A-2D85-5BBC-91CE-F921D1C0AEE7'  
}  
    不支持的变量:db.env.choose  
Error: 不支持的变量:db.env.choose  
    at _callCloudFunction (/tmp/function/@common_modules/uni-cloud-jql/index.js:1:6047)  
    at addQuestion (/tmp/function/index.obj.js:55:13)  
    at z (/tmp/function/index.js:1:23436)  
    at ee (/tmp/function/index.js:1:24155)  
    at runUserFunction (/code/index.js:98:271586)  
    at (/code/index.js:98:266752)  
19:59:57.633 [云端运行:阿里云:mo-question-bank]运行报告:计费时间:ms 运行时间:ms 运行内存:0B  
2023-02-23 20:02 负责人:无 分享
已邀请:

最佳回复

DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

问题已解决,云端schema编写有误,本地schema修改后未上传引起的

DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

代码怎么写的?

  • c***@qq.com (作者)

    这里写代码,貌似格式有问题,我写在下面的回复中了

    2023-02-24 12:57

c***@qq.com

c***@qq.com (作者)

是写死的测试代码,本地调试能通过,传到云上就报错,云环境中,Node.js 8和Node.js 12分别测试过,都是同样的错误。

async addQuestion() {  
        const db = uniCloud.databaseForJQL({ // 获取JQL database引用,此处需要传入云对象的clientInfo  
            clientInfo: this.getClientInfo()  
        })  
        db.setUser({  
            uid: '63f47baef5cf3ae510d9c0e5', // 用户id  
            role: ['admin'], // 指定当前执行用户的角色为admin。如果只希望指定为admin身份,可以删除uid和permission字段  
            permission: [] // 用户权限  
        })  
        console.log(this.getClientInfo());  
        // const httpInfo = this.getHttpInfo()  
        // const json = JSON.parse(httpInfo.body)  
        const json = {  
            "question": "123",  
            "options": [{  
                "question": "123",  
                "options": ["1", "2"],  
                "answer": ["1", "2"]  
            }, {  
                "question": "123",  
                "options": ["1", "2"],  
                "answer": ["1", "2"]  
            }],  
            "answer": ["1", "2"]  
        }  
        let bean = {}  
        if (!(json.question &&  
                json.options &&  
                json.answer &&  
                json.options[0] &&  
                json.answer[0])) {  
            return {  
                "code": 0,  
                "msg": "字段校验未通过。"  

            }  
        } else {  
            bean.question = json.question  
            bean.options = json.options  
            bean.answer = json.answer  
            bean.create_uid = '63f47baef5cf3ae510d9c0e5'  
            bean.state = 1  
            if (json.analysis) {  
                bean.analysis = json.analysis  
            }  
            let re = await db.collection("mo-question-bank-choose").add(bean)  
            return {  
                "code": re.id,  
                "msg": re.id  
            }  
        }  

    },
  • DCloud_uniCloud_WYQ

    只有这些代码吗?有用到触发器吗?

    2023-02-24 14:41

  • c***@qq.com (作者)

    回复 DCloud_uniCloud_WYQ: 没有,就这些,这是全部代码,下面粘贴的是param.js的代码,但是也没啥,都是官网上的例子


    const clientInfo = { // 模拟clientInfo

    uniPlatform: 'web',

    source: 'client', // 调用来源,不传时默认为 client

    clientIP: '127.0.0.1', // 客户端ip,不传时默认为 127.0.0.1

    userAgent: 'xx MicroMessenger/xxx', // 客户端ua,不传时默认为 HBuilderX

    uniIdToken: 'xxx'

    }

    addQuestion('name-demo', 'password-demo') // 调用login方法传入参数'name-demo'和'password-demo'

    2023-02-24 15:22

c***@qq.com

c***@qq.com (作者)

还有Hbuilder X执行数据库插入竟然也报错…………我已经更新到最新版了……好奇怪

  • DCloud_uniCloud_WYQ

    确实有点奇怪,你加我QQ我远程看下吧,2292434668

    2023-02-24 15:56

要回复问题请先登录注册