我也遇到了这个问题,app.js里指定的环境只能切换云函数的环境,没法切换数据库,按官方文档说的每个环境都是相互独立,不明白为什么会这样
困惑 环境指定!在实际开发中,建议每一个正式环境都搭配一个测试环境,所有功能先在测试环境测试完毕后再上到正式环境 app.js ============= wx.cloud.init({ env: "test-892d04", traceUser:true, }) 传入字符串形式的环境 ID , 云函数添加数据 // 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init() const db = cloud.database() // 云函数入口函数 exports.main = async (event, context) => { return await db.collection('user').add({ data:{ user: event.name, password: event.age, regtime: db.serverDate() } }) } const db = cloud.database() 获取默认环境的数据库, 现在的问题是 我想给test-892d04环境 下的user集合添加数据,结果会写入正式环境的user集合里! 我然后重新指定了环境,实现想要的效果 const cloud = require('wx-server-sdk') cloud.init() const db = cloud.database({ env: 'test-892d04' }) 我想问测试环境的云函数如需要上传到正式环境里,那么每个云函数里的 cloud.database() 都要重新定义成正式环境的id 误区: 我一开始以为app.js 里的wx.cloud.init 定义好后,云函数的cloud.init()就自动关联上了. 事实上操作测试环境的云函数,数据却写在正式环境里, ,那是不是app.js 里的wx.cloud.init 与 cloud.init() 根本就没关系,我这边的情况就是这样,确实不太明白wx.cloud.init 中定义的全局配置的意义 何在,?小白一个请帮忙解答一下,谢谢 自己也尝试搜索社区类似的问题, 都是书面回答,迷迷糊糊的 如: api 层面指定环境的(谁知道api层面具体指那?) 还有一个关系wx.cloud.init 传入对象写法分别指定各个服务的默认环境,之前的字符串写法没问题可以,写入数据 wx.cloud.init({ env: { database: "test-892d04"}, traceUser: true }) databasestring否default数据库 API 默认环境配置 最后报错了: Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail cloud function service error code -504001, error message Unkown function; at cloud.callFunction 其实最想解决的是: 1测试环境的云函数如需要上传到正式环境里,是不是每个云函数里的 cloud.database() 都要重新定义成正式环境的id,这样真的不科学! 2 wx.cloud.init 全局定义与云函数到底是什么关系?
2018-10-13