当我从typeORM检索对象时(mysql),如果对象的字符串字段值包含双空格,它将不会作为两个纯空格返回,而是一个符号和一个空格。因此,当我将检索到的值用于javascript属性访问器时,输出变为未定义。我的用例也需要符号(utf-8).这里的错误是什么,我如何才能正确地检索带有两个空格的值?
const field_name_obj = {
field_name : "some name" // two normal spaces, no symbols.
}
const obj = {
"some name" : "value"
}
// typeORM.save(field_name_obj);
const get = typeORM.find(field_name_obj)
console.log(get.field_name) // "some name"
console.log(obj[get.field_name]) // undefined
console.log(obj[field_name_obj.field_name]) // "value"
console.log(obj["some name"]) // "value"
在上面的示例中,如果"some name"
改为"some name"
,则obj[get.field_name]
将返回预期的"value"
。
表格详情:
Engine: InnoDB
Table collation: utf8mb4_unicode_ci
1条答案
按热度按时间d6kp6zgx1#
我也相信这是一个TypeORM问题,正如里克·詹姆斯所说。
打开一个bug报告here,现在,您可以像这样缓解这个问题:
最后,请不要在对象键中使用空格:)