Javascript DynamoDB batchWriteItem在node.js中崩溃
我试图在aws sdk中使用batchWriteItem,但遇到一个导致节点崩溃的错误。奇怪的是,我的项目确实会写入数据库。错误发生在sdk内部 我的代码是:Javascript DynamoDB batchWriteItem在node.js中崩溃,javascript,node.js,amazon-web-services,Javascript,Node.js,Amazon Web Services,我试图在aws sdk中使用batchWriteItem,但遇到一个导致节点崩溃的错误。奇怪的是,我的项目确实会写入数据库。错误发生在sdk内部 我的代码是: function sendItems(params) { console.log("SENDING:"); console.log(params); dynamodb.batchWriteItem(params, function(err, data) { console.log("Response
function sendItems(params) {
console.log("SENDING:");
console.log(params);
dynamodb.batchWriteItem(params, function(err, data) {
console.log("Response from DynamoDB");
if(err) console.log(err);
else console.lod(data);
});
}
var toSave = [];
for(name in names) {
var item = {
Id: { S: uuid.v4() },
Name: { S: name }
};
toSave.push(item);
}
var items = [];
for(var i = 0; i < toSave.length; i++) {
items[i] = {
PutRequest: { Item: toSave[i] }
}
}
var params = {
RequestItems: {
'MyTableName': items
},
ReturnConsumedCapacity: 'TOTAL',
ReturnItemCollectionMetrics: 'SIZE'
};
sendItems(params);
似乎很奇怪,实际上发生了以下情况:
if(err) {
//err must be defined here, right?
//No code modifies err or sets it to undefined.
//Is it possible that another thread altered err
// between the call to the function and the call to throw?
throw err; //Should just throw err back up.
}
这可能是aws js sdk中的错误吗?替换:
for(name in names) {
var item = {
Id: { S: uuid.v4() },
Name: { S: name }
};
toSave.push(item);
}
与:
var toSave = [];
names.forEach(function(name){
var item = {
Id: { S: uuid.v4() },
Name: { S: name }
};
toSave.push(item);
});
我也面临着同样的问题,但上面的解决方案为我解决了这个问题。这是假设代码中的name变量是一个数组。您有机会完成它吗?我正处于上传的下一个阶段。它表示“提供的密钥与架构不匹配”。你不觉得有什么问题吗?
for(name in names) {
var item = {
Id: { S: uuid.v4() },
Name: { S: name }
};
toSave.push(item);
}
var toSave = [];
names.forEach(function(name){
var item = {
Id: { S: uuid.v4() },
Name: { S: name }
};
toSave.push(item);
});