这感觉是一个非常愚蠢的问题,但我缺乏JS知识加上缺乏AWS知识让我陷入困境!我只是想掌握基本的AWS堆栈,即Lambda/Dynamo/API网关,以进行一些基本的API工作。
如果我想要一个简单的APIendpoint来处理PUT请求,例如https://my.endpoint.amazonaws.com/users
。如果我有一个DynamoDB表,它的复合主键是userID
和时间戳
,我可以使用下面的代码片段来获取未知数据(设置模式时未知的属性),但这显然效果不佳
const dynamo = new AWS.DynamoDB.DocumentClient();
let requestJSON = JSON.parse(event.body);
await dynamo
.put({
TableName: "myDynamoTable",
Item: {
userID: requestJSON.userID,
timestamp: requestJSON.timestamp,
data: requestJSON.data
}
})
.promise();
我可以使用以下 JSON 发送 PUT
请求
{
"userID": "aaaa1111",
"timestamp": 1649677057,
"data": {
"address": "Elm Street",
"name": "Glen"
}
}
但是地址
和名称
被塞进一个名为data
的DynamoDB属性中。如果我不知道这些属性,即我想在下面的请求中使用JSON,但假设我不知道这一点并且不能使用requestJSON.address
{
"userID": "aaaa1111",
"timestamp": 1649677057,
"address": "Elm Street",
"name": "Glen"
}
如果你坚持API合同
{
"userID": "aaaa1111",
"timestamp": 1649677057,
"data": {
"address": "Elm Street",
"name": "Glen"
}
}
然后,您可以在TypeScript级别进行映射
const request: {userID: string, timestamp: number, data: any} = {
"userID": "aaaa1111",
"timestamp": 1649677057,
"data": {
"address": "Elm Street",
"name": "Glen"
}
};
const ddbObject: any = {
"userID": request.userID,
"timestamp": request.timestamp
};
Object
.keys(request.data)
.forEach(key => ddbObject[key] = request.data[key]);
ddb 对象的表示形式
为
{
"userID": "aaaa1111",
"timestamp": 1649677057,
"address": "Elm Street",
"name": "Glen"
}
您可以使用扩展运算符,例如:
js lang-js prettyprint-override">const data = {
address: "Elm Street",
name: "Glen",
};
const item = {
userID: "aaaa1111",
timestamp: 1649677057,
...data,
};
console.log("item:", item);
本文向大家介绍MySQL在不知道列名情况下的注入详解,包括了MySQL在不知道列名情况下的注入详解的使用技巧和注意事项,需要的朋友参考一下 前言 最近感觉脑子空空,全在为了刷洞去挖洞,还是回归技术的本身让自己舒服些。好了,下面话不多说了,来一起看看详细的介绍吧 前提 以下情况适用于 MySQL < 5版本,或者在 MySQL >= 5 的版本[存在information_schema库],且已获取
我正在尝试在我的应用程序中实现会话过期。因此,当用户令牌过期时,我想导航到登录片段并清除后端堆栈上的所有现有目标。我知道这是可以通过和实现的,但是正在进行大量条件导航,并且在导航到登录片段时无法确定popUpTo的目标。有没有办法简单地导航到新片段并清除后端堆栈上的所有其他目标?
问题内容: 我有个问题。我正在尝试将一些字符串转换为日期,但我不知道日期到达的格式。 这或许让他们或等。 如何将这些字符串转换为Date?我尝试了这个: 但是,当我打印出someDate时,它的打印方式是这样的:2019-08-05 12:42:48.638 CEST这意味着,但是当我运行以上代码时,日期对象现在变成了,至少可以这样说。 有什么想法可以正确格式化日期格式吗? 问题答案: 你不能!
我使用键值存储作为我的Go语言应用程序的后端,日期作为键(保持条目排序),json文档作为值。json的顶级命名空间()以及和存在于我存储的每个json文档中,但在其他方面存在一些差异(尤其是关于一些嵌套的json数据),所以当keyI从数据库中提取时,我真的不知道我在循环浏览的任何时间提取了什么。这是json数据的示例 当我从数据库中提取数据时,我要做的第一件事是将每个条目解组到<code>ma
我正在编写简单的程序来执行Amazon DynamoDB操作,我有两个问题, 我想使用updateItem更新参数“year”,但出现了一个错误 表达式属性值包含无效键:语法错误;键:val(服务:Amazon DynamoDBv2;状态代码:400;错误代码:ValidationExcture;请求ID:K6B8GC69295KUV9V7J10OCAFJJV4KQNSO5AEMVJF66Q9AS
有一个行为我找不到相关的留档。让我们假设以下代码。它应该在控制台中显示使用foo.bar属性配置的内容: 如果您在application.yml()中设置了以下属性,它将被正确地拾取并在控制台中显示“fromapplication.yml”,没什么花哨的 现在,如果您使用完全相同的代码,但这次您想使用命令行参数覆盖application.yml中定义的属性,并将--设置为命令行arg(请注意,这次