问题模块 框架类型 问题类型 终端类型 AppID 基础库版本
云开发 微信小程序 需求 客户端 wx66dd28da5445fa01 2.2.5
在实际开发中,建议每一个正式环境都搭配一个测试环境,所有功能先在测试环境测试完毕后再上到正式环境
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 全局定义与云函数到底是什么关系?
微信小程序开发问题解答
微信小程序开发者回答:
我也遇到了这个问题,有没有什么方法可以获取到当前云函数是什么环境么?然后再动态的设置数据库的环境。
我从微信小程序里面把env传到云函数里面了,这样就可以了。
// 调用云函数
wx.cloud.callFunction({
name: 'login',
data: { env: "dev-423fb1"},
// 云函数入口文件
const cloud = require('wx-server-sdk')
// 云函数入口函数
exports.main = async(event, context) => {
cloud.init({
env: event.env
})
微信小程序开发者回答:
我的wx.cloud为空,请问有人遇到过么
微信小程序开发者回答:
照我的写不就完了
微信小程序开发者回答:
我自己解决了,你没看明白我的问题
微信小程序开发者回答:
呵呵,确实没看明白
微信小程序开发者回答:
我也遇到了这个问题,app.js里指定的环境只能切换云函数的环境,没法切换数据库,按官方文档说的每个环境都是相互独立,不明白为什么会这样
微信小程序开发者回答:
谢谢!
微信小程序开发者回答:
这个 env 对于微信小程序端是全局的
对于云函数 不管使用测试环境还是正常环境默认都是第一个
除非你指定
每个云函数都要指定
不然比正式环境的云函数可能使用了 测试环境的 集合 哈哈哈哈
本文网址:http://www.91bianli.com/kaifazhinan/76648.html