HarmonyOS 鸿蒙Next 云函数保存云数据库数据类型不匹配

HarmonyOS 鸿蒙Next 云函数保存云数据库数据类型不匹配

云函数定制Demo包中用的是Node.js,只找到了number的数据类型,对于int和double两种类型没有找到,将json对象解析并保存到数据库时就会报错类型不匹配,想问下怎么把js的number类型转为数据库需要的double、int或其他浮点数类型呢?

const menu = clouddb.CloudDBZoneGenericObject.build(objectName)
menu.addFieldValue("title", data.title)
menu.addFieldValue("img", data.img)
console.log(JSON.stringify(data.score))
console.log(typeof(data.score)); // number类型
console.log(typeof(parseInt(data.uid))); // 仍然是number类型
menu.addFieldValue("score", 0.1) // 需要double类型
menu.addFieldValue("uid", 1) // 需要int类型
return mCloudDBZone.executeUpsert(menu)

image


更多关于HarmonyOS 鸿蒙Next 云函数保存云数据库数据类型不匹配的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

ArkTS中所有数字类型都用number类型来表示,您可以参照以下代码,转成String,再从String来上传:

import Long from 'long'

“Long”: Long.fromString(“9223372036854775807”),

示例代码:

const targetDayProcessList = await cloud.database({ objectTypeInfo: schema, zoneName: ZONE_NAME })
.collection(Process)
.query()
.greaterThanOrEqualTo('createTime', Long.fromString("9223372036854775807"))
.get();

目前还没有基于ArkTS云函数demo,只有Node.js与Java版本的。

云函数测试报错,请在函数包的package.json文件添加:"@agconnect/common-server": “1.1.0”,然后删除node_modules目录并重新npm install一下即可。

更多关于HarmonyOS 鸿蒙Next 云函数保存云数据库数据类型不匹配的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


尊敬的开发者您好,该问题建议您还可以选择通过在线提单来进一步解决:https://developer.huawei.com/consumer/cn/support/feedback/#/,感谢您的反馈和支持。

在HarmonyOS鸿蒙Next中,云函数保存云数据库时出现数据类型不匹配的问题,通常是由于云函数中传递的数据类型与云数据库表的字段定义不一致导致的。鸿蒙Next的云数据库要求数据格式严格匹配,包括字段类型、字段长度等。如果云函数中传递的数据类型与数据库表的字段定义不符,系统会抛出数据类型不匹配的错误。

例如,如果数据库表的某个字段定义为整数类型(Integer),而云函数传递的是字符串类型(String),则会导致数据类型不匹配的错误。类似地,如果数据库表的字段定义为日期类型(Date),而云函数传递的是时间戳或字符串,也会引发此类问题。

要解决这个问题,需要确保云函数中传递的数据类型与云数据库表的字段定义完全一致。可以通过在云函数中对数据进行类型转换或校验,确保数据格式符合数据库表的要求。同时,检查云数据库表的字段定义,确保其与实际业务需求一致,避免因字段类型定义错误导致的数据类型不匹配问题。

回到顶部