- 当前 Bug 的表现(可附上截图)
云函数端,通过doc.update以及doc.set更新日期都失败,提示
Error: errCode: -401003 api parameter type error | errMsg: data.data.created_at is not JSON-serializable
- 预期表现
- 复现路径
- 提供一个最简复现 Demo
exports.main = async (event, context) => { ///* let collectionName = event.collectionName; let templateData = event.data; //*/ let id = templateData._id; delete templateData._id; return cloud.database().collection(collectionName).doc(id).update({ data: templateData }); } |
你好,这是因为调用 wx.cloud.callFunction 时传入的 data 对象中的字段暂无法序列化 Date 对象,因此报错,后续我们会考虑提供序列化,请调用时使用 +new Date() 而不是 new Date(),即使用数字表示时间而不是 Date 对象
您好,我今天遇到了这个问题
小程序端可以在数据库中保存Date对象,但云函数端不能
请问官方打算何时修复这个问题?
如果官方近期没有修复计划,我就把数据库中全部Date对象转为string了
谢谢
我也遇到这个问题,请解决了吗
看报错信息是代码的问题,templateData的值是不是不在预期内
提示出错的字段是created_at,其赋值为new Date()。
created_at:Sat Oct 06 2018 22:04:57 GMT+0800 (中国标准时间)
__proto__:Object
然后update失败。
再次尝试了一下,小程序端调用doc.update能更新date字段,服务器端调用不可更新。
服务器端代码:
wx.cloud.callFunction({
name:
'updateOneRecord'
,
data: {
collectionName:
"goods"
,
data: {
created_at:
new
Date()
}
},
complete: res => {
console.log(
'updateOneProduct: '
, res);
}
});
/*****************************************/
exports.main = async (event, context) => {
let collectionName = event.collectionName;
let templateData = event.data;
let id = templateData._id;
delete
templateData._id;
return
cloud.database().collection(collectionName).doc(id).update({
data: templateData
});
}
请协助解决,感激不尽!