Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DynamoDB batchWriteItem在node.js中崩溃_Javascript_Node.js_Amazon Web Services - Fatal编程技术网

Javascript DynamoDB batchWriteItem在node.js中崩溃

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

我试图在aws sdk中使用batchWriteItem,但遇到一个导致节点崩溃的错误。奇怪的是,我的项目确实会写入数据库。错误发生在sdk内部

我的代码是:

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);
});