在实际开发中,建议每一个正式环境都搭配一个测试环境,所有功能先在测试环境测试完毕后再上到正式环境
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
})
database | string | 否 | 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 全局定义与云函数到底是什么关系?