将值拆分为子字符串字段时出错
Error splitting value into substring fields
我是 typescript 的新手,我正在尝试使用 typescript 从 DynamoDB 中的字段中提取数据。我需要能够将字符串字段拆分为 2 个子字符串并存储在 2 个单独的变量中。
示例数据:
Id days end createdAt type
123 3 2021-07-22#AM 21/10/2020 Leave#Upskilling
342 7 2021-10-22#PM 15/02/2021 Long Term Leave#Parental
预期输出数据:
Id days end createdAt type subleavetype
123 3 2021-07-22#AM 21/10/2020 Leave Upskilling
342 7 2021-10-22#PM 15/02/2021 Long Term Leave Parental
这是我到目前为止所做的:
recordsToJoin.push(
getAttributeValue(newImage.id),
getAttributeValue(newImage.days),
getAttributeValue(newImage.end),
getAttributeValue(newImage.createdAt, true),
getAttributeValue(newImage.type.split('#')[0])),
getAttributeValue(newImage.type.split('#')[1]),
);
但是,我遇到了错误,所以请帮忙。
这是我们为获取属性值调用的代码文件..
import { AttributeValue } from 'aws-sdk/clients/dynamodb';
import { decodeTimestamp } from '../dates/dates';
export const getAttributeValue = (
attribute: AttributeValue,
isDate = false,
): string => {
if (attribute == null) {
return '';
}
const keys = Object.keys(attribute);
if (isDate) {
if (keys[0] == 'N') {
return decodeTimestamp(Number(attribute.N));
} else {
return '';
}
} else if (keys[0] == 'S') {
return attribute.S;
} else if (keys[0] == 'N') {
return attribute.N;
} else if (keys[0] == 'NULL') {
return '';
} else if (keys[0] == 'BOOL') {
return attribute.BOOL.toString();
} else {
//else if statement can be extended to add more types
return '';
}
};
export const getCommaSeparatedValues = (
attributeList: AttributeValue[],
): string => {
const attributes: string[] = [];
for (const attribute of attributeList) {
attributes.push(attribute.S);
}
return attributes.join(',');
};
错误消息是:属性 'split' 在类型 'AttributeValue' 上不存在。
抛出错误是因为您之前正在拆分以获取值
recordsToJoin.push(
getAttributeValue(newImage.id),
getAttributeValue(newImage.days),
getAttributeValue(newImage.end),
getAttributeValue(newImage.createdAt, true),
getAttributeValue(newImage.type).split('#')[0],
getAttributeValue(newImage.type).split('#')[1],
);
我是 typescript 的新手,我正在尝试使用 typescript 从 DynamoDB 中的字段中提取数据。我需要能够将字符串字段拆分为 2 个子字符串并存储在 2 个单独的变量中。
示例数据:
Id days end createdAt type
123 3 2021-07-22#AM 21/10/2020 Leave#Upskilling
342 7 2021-10-22#PM 15/02/2021 Long Term Leave#Parental
预期输出数据:
Id days end createdAt type subleavetype
123 3 2021-07-22#AM 21/10/2020 Leave Upskilling
342 7 2021-10-22#PM 15/02/2021 Long Term Leave Parental
这是我到目前为止所做的:
recordsToJoin.push(
getAttributeValue(newImage.id),
getAttributeValue(newImage.days),
getAttributeValue(newImage.end),
getAttributeValue(newImage.createdAt, true),
getAttributeValue(newImage.type.split('#')[0])),
getAttributeValue(newImage.type.split('#')[1]),
);
但是,我遇到了错误,所以请帮忙。
这是我们为获取属性值调用的代码文件..
import { AttributeValue } from 'aws-sdk/clients/dynamodb';
import { decodeTimestamp } from '../dates/dates';
export const getAttributeValue = (
attribute: AttributeValue,
isDate = false,
): string => {
if (attribute == null) {
return '';
}
const keys = Object.keys(attribute);
if (isDate) {
if (keys[0] == 'N') {
return decodeTimestamp(Number(attribute.N));
} else {
return '';
}
} else if (keys[0] == 'S') {
return attribute.S;
} else if (keys[0] == 'N') {
return attribute.N;
} else if (keys[0] == 'NULL') {
return '';
} else if (keys[0] == 'BOOL') {
return attribute.BOOL.toString();
} else {
//else if statement can be extended to add more types
return '';
}
};
export const getCommaSeparatedValues = (
attributeList: AttributeValue[],
): string => {
const attributes: string[] = [];
for (const attribute of attributeList) {
attributes.push(attribute.S);
}
return attributes.join(',');
};
错误消息是:属性 'split' 在类型 'AttributeValue' 上不存在。
抛出错误是因为您之前正在拆分以获取值
recordsToJoin.push(
getAttributeValue(newImage.id),
getAttributeValue(newImage.days),
getAttributeValue(newImage.end),
getAttributeValue(newImage.createdAt, true),
getAttributeValue(newImage.type).split('#')[0],
getAttributeValue(newImage.type).split('#')[1],
);