Ste*_*ast 7 javascript amazon-web-services node.js amazon-dynamodb
我正在使用aws-sdkNodeJS与DynamoDB表进行交互。这是我第一次看DynamoDB。
当使用类似getItem()或的调用时updateItem(),数据结构包括如下类型:
{
'a': { S: 'My string' }
}
Run Code Online (Sandbox Code Playgroud)
没有类型,有没有办法传递和接收这些对象?所以...
{
'a': 'My string'
}
Run Code Online (Sandbox Code Playgroud)
或者,已经编写的任何帮助程序功能都可以将对象与该格式相互转换。
const data = dbToObj({ 'a': { S: 'My string' } })
// { 'a': 'My string' }
Run Code Online (Sandbox Code Playgroud)
因此,我可以在填充调用参数时转换为它,而在接收数据时将其转换为它。
尝试避免访问我的数据,例如:
const myData = data.Item.something.M.somethinElse.M.qwerty.S
Run Code Online (Sandbox Code Playgroud)
我知道我可以自己写点东西,只是想知道是否有人知道已经可用的功能/选项可以做到这一点。我找不到。
发现了这一点:
正是我想要的。
安装: npm i dynamodb-data-types
提供wrap({ 'a': 'My string' })并unwrap({ 'a': { S: 'My string' } })做转换和从普通对象的方法。
更新
我现在也发现了::AWS.DynamoDB.DocumentClient,这是的一部分aws-sdk。
文档客户端通过抽象化属性值的概念,简化了在Amazon DynamoDB中处理项目的工作。此抽象对作为输入参数提供的本机JavaScript类型进行注释,并将带注释的响应数据转换为本机JavaScript类型。
更新2
亚马逊正在其awslabsgithub页面上对此进行处理:
该库提供了一个Marshaller类,该类将本机JavaScript值转换为DynamoDB AttributeValues,然后再次转换。它旨在与集,地图和可迭代对象等ES6功能配合使用,并且可以配置为仅支持JavaScript(例如,空二进制缓冲区)或Amazon DynamoDB(例如,任意大小的数字)所支持的数据类型,并且需要付出最小的代价。
它是其DynamoDB DataMapper For JavaScript软件包的一部分。
| 归档时间: |
|
| 查看次数: |
2863 次 |
| 最近记录: |