评论

云函数开发跳坑经验-报错404011 cloud function execution error

云函数访问数据库的注意事项

这里写一下这两天踩过的坑,若有大神看此贴,欢迎指点一二,若有写的不周的地方,请谅解


前言:小程序需要在云函数中执行对数据库的新建以及更新操作

我这里用的云函数操作的云数据库,刚开始写的是一个新建的动作,复杂的逻辑劈里啪啦写了一大堆,测试一下并没有报错,但是在我进入云开发去看数据库时傻眼了---并没有刚刚新建的记录。赶紧先把代码挪出来只写一个简简单单的新建函数:

    注意一:

        云函数开发和普通开发有些区别--普通开发访问数据库这么写:const db = wx.cloud.database()

                                                              云函数访问数据库这么写:const db = cloud.database()

    注意二:对数据库的操作代码之前要加上    “await”    (这里我要吐槽一下官方文档,没有有关于云函数操作数据库的注意事项文档)

        
                嗯,这样才算能够操作的到数据库

    注意三:云函数初始化的时候,千万不要图省事什么都不写:

        开始的时候,我以为这么写会去访问默认数据库不需要其他操作

                        

        那么你可能会和我一样遇到-404011错误

                    


        原来云函数在初始化的时候,并不会按照app.js中wx.cloud.init里面配置的信息进行位置访问,而是需要在云函数的初始化方法中声明访问位置

            

        这个报错影响了我一天,这里也需要提醒一下遇到-404011的各位,遇到这样的问题继续看报错信息不要莽莽撞撞的就去查各种资料,比如我的这个报错信息,提示找不到db or table 所以才意识到初始化的时候需要声明一下,之后再上传并部署就可以了

        也许您也还会遇到-404011的其他报错信息,报错信息后面如果提示找不到sdk或者其他的也都有可能,在查百度的时候看到这样一篇文章不错,可以借鉴一下https://blog.csdn.net/New_Yao/article/details/84657774

    

我的电脑上是没有装node的,但是也可以正常使用,我一直使用的都是云端安装依赖,因为我在看官方文档的时候,并没有说电脑一定要安装node,当然,这个还是要看实际情况

点赞 3
收藏
评论

1 个评论

  • 时太阳
    时太阳
    2019-05-17

    我再云函数中发起http请求

    got({

    hostname:'http://网址',

    path:'/plat/user/',

    port:'8080',

    method:'POST',

    headers:{

    'Content-Type':'application/json'

    },

    body:JSON.stringify({

    nickname:'ssssssssss'

    })

    })

    返回如下的结果

    {"errorCode":1,"errorMessage":"user code exception caught","stackTrace":"Invalid URL: https://[http://120.********]:8080"}


    这是什么原因呢


    2019-05-17
    赞同
    回复
登录 后发表内容