AWS Node.js JSON放置错误



我有以下代码,我试图使用node.js上传到dynamoDB local主机。

是否有可能工作。对于以下错误?

Unable to add event undefined . Error JSON: {
  "message": "One of the required keys was not given a value",
  "code": "ValidationException",
  "time": "2016-06-28T04:02:26.250Z",
  "requestId": "970984e4-3546-41f0-95f9-6f1b7167c510",
  "statusCode": 400,
  "retryable": false,
  "retryDelay": 0
}

这是代码。我希望Item: {}接受可能存在的任何值,然后将它们添加到表中。

var AWS = require("aws-sdk");
var fs = require('fs');
AWS.config.update({
    region: "us-west-2",
    endpoint: "http://localhost:8000"
});
var docClient = new AWS.DynamoDB.DocumentClient();
console.log("Importing movies into DynamoDB. Please wait.");
var allMovies = JSON.parse(fs.readFileSync('moviedata.json', 'utf8'));
allMovies.forEach(function(movie) {
    var params = {
        TableName: "Movies",
        Item: {
            "year":  movie.year,
            "title": movie.title,
            "info":  movie.info,
            "twitter": movie.twitter
        }
    };
    docClient.put(params, function(err, data) {
       if (err) {
           console.error("Unable to add movie", movie.title, ". Error JSON:", JSON.stringify(err, null, 2));
       } else {
           console.log("PutItem succeeded:", movie.title);
       }
    });
});

当您通过承诺呼叫循环时,您需要一个当前承诺在开始下一个的保障。

var AWS = require("aws-sdk");
var fs = require('fs');
const tableName = 'Movies';
AWS.config.update({
  region: "local",
  endpoint: "http://localhost:8000"
});
var docClient = new AWS.DynamoDB.DocumentClient();
console.log("Importing movies into DynamoDB. Please wait.");
var allMovies = JSON.parse(fs.readFileSync('moviedata.json', 'utf8'));
for (let i = 0, p = Promise.resolve(); i < allMovies.length; i++) {
    p = p.then(_ => new Promise(resolve =>
        setTimeout(function () {
          var params = {
              TableName: tableName,
              Item: {
                  "year":  allMovies[i].year,
                  "title": allMovies[i].title,
                  "info":  allMovies[i].info
              }
          };
          docClient.put(params, function(err, data) {
             if (err) {
                 console.error("Unable to add movie", allMovies[i].title, ". Error JSON:", JSON.stringify(err, null, 2));
             } else {
                 console.log("PutItem succeeded:", allMovies[i].title);
             }
          });
          resolve();
        }, 10)
    ));
}

最新更新