通过NodeJS将对象保存到DynamoDB实例
Saving an object to DynamoDB instance via NodeJS
我觉得我错过了一些明显的东西,但是文档对于DynamoDB来说有点令人困惑,特别是对于NodeJS(但是我确实看到了很多Java !)。
我已经做了相当多的搜索,只发现了有关旧SDK的问题,所以希望这不是一个重复的问题!
我试图将Javascript对象存储到我的DynamoDB实例中。下面列出了我得到的错误和我使用的代码。
错误:Unable to add item. Error JSON: {
"message": "One or more parameter values were invalid:
Type mismatch for key File expected: S actual: M",
"code": "ValidationException",
"time": "2016-10-29T19:36:02.317Z",
"requestId": [removed],
"statusCode": 400,
"retryable": false,
"retryDelay": 0
}
代码:var aws = require('aws-sdk');
var docClient = new aws.DynamoDB.DocumentClient({
"accessKeyId": AWS_ACCESS_KEY_ID,
"secretAccessKey": AWS_SECRET_ACCESS_KEY,
region: 'us-east-1',
endpoint: "https://dynamodb.us-east-1.amazonaws.com"
});
var tableName = AWS_TABLE_NAME;
var params = {
TableName: tableName,
Item: {
ProjID: projID,
File: {
name: fileName,
url: fileUrl
}
}
};
docClient.put(params, function (err, data) {
if (err) {
console.error("Unable to add item. Error JSON:", JSON.stringify(err, null, 2));
} else {
console.log("Added item:", JSON.stringify(data, null, 2));
}
callback(true);
});
再一次,我确信这是一个相当简单的问题-我只是没有找到任何文档来帮助我更新。
提前感谢你能给的任何帮助!
File是表模式中的属性吗?如果它是,并且它被定义为String,那么您得到的错误只是表明您试图将映射放入字符串属性中。
DynamoDB只支持String和Numeric键,所以你必须重新设计。也许您可以将File信息存储为键的字符串,然后在需要时将其扩展为映射到单独的属性。
相关文章:
- ES6构造函数返回基类的实例
- KnockoutJS-组件-多个实例
- 为什么无法在TypeScript中导出类实例
- 如何在GoogleWeb工具包(GWT)中从JSNI调用接口(实例化)
- fluxxor向一个flux实例添加一组以上的操作
- 使用jQuery获取Dropzone实例/对象
- "实例范围”;TypeScript类的getter/setter
- 如何在速度模板中获取LiferayPortlet实例id
- 同一项怎么可能在一个实例中未定义,却在另一个实例上定义
- 使用DynamoDB查询返回
- 实例创建(JS)
- 显示模块模式在Knockout中设置模型的新实例
- 如何获取单选按钮的多个实例的选定单选按钮值
- 当同一浏览器的两个实例浏览时,Javascript页面如何具有唯一的ID
- 在哪里可以找到RXUI Javascript'时间飞逝'实例
- spine.js在启动时填充模型实例
- 不再需要时使用jQuery/kill实例
- 如何在用户输入时实例化数组
- 从Sequelize中的非实例更新
- 通过NodeJS将对象保存到DynamoDB实例