2

Node.js/Express で実行されている Amazon SimpleDB の非常に簡単なテストを取得しようとしています。これは私が使用しているコードです (もちろん、AWS キー/シークレットはサニタイズされています):

var express = require('express');
var simpledb = require('simpledb');

var app = express.createServer();
var sdb = new simpledb.SimpleDB(
        {keyed:'MYKEY', secret:'MYSECRET'}, simpledb.debuglogger);

app.get('/', function(req, res) {
        console.log("about to list domains...");
        sdb.listDomains(function(error, result, meta) {
                console.log("listing domains, I think?");
        });
});

app.listen(8888);

これは私が得ているエラーです:

DEBUG: simpledb:  2012-04-06T01:34:24.856Z create {"keyid":"MYKEY","secret":"MYSECRET","secure":false,"consistent":true,"test":false,"maxtry":null,"expbase":null,"delaymin":null,"delayscale":null,"randomdelay":null} {"secure":false,"host":"sdb.amazonaws.com","path":"/","version":"2009-04-15","port":80}
about to list domains...
DEBUG: simpledb:  2012-04-06T01:34:29.253Z request 1333676069253 ListDomains {}
DEBUG: simpledb:  2012-04-06T01:34:29.387Z handle 1333676069253 ListDomains {"Action":"ListDomains","Version":"2009-04-15","SignatureMethod":"HmacSHA256","SignatureVersion":"2","Timestamp":"2012-04-06T01:34:29.253Z","AWSAccessKeyId":"MYKEY","Signature":"AWSSIGNATURE"} 1 false null

/home/rob/node_modules/simpledb/lib/simpledb.js:136
    if( res.Errors ) {
           ^
TypeError: Cannot read property 'Errors' of null
    at [object Object].handle (/home/rob/node_modules/simpledb/lib/simpledb.js:136:12)
    at /home/rob/node_modules/simpledb/lib/simpledb.js:188:18
    at Parser.<anonymous> (/home/rob/node_modules/simpledb/node_modules/aws-lib/lib/aws.js:81:13)
    at Parser.emit (events.js:67:17)
    at Object.onclosetag (/home/rob/node_modules/simpledb/node_modules/aws-lib/node_modules/xml2js/lib/xml2js.js:120:24)
    at emit (/home/rob/node_modules/simpledb/node_modules/aws-lib/node_modules/sax/lib/sax.js:148:32)
    at emitNode (/home/rob/node_modules/simpledb/node_modules/aws-lib/node_modules/sax/lib/sax.js:152:3)
    at closeTag (/home/rob/node_modules/simpledb/node_modules/aws-lib/node_modules/sax/lib/sax.js:226:5)
    at Object.write (/home/rob/node_modules/simpledb/node_modules/aws-lib/node_modules/sax/lib/sax.js:567:29)
    at Parser.<anonymous> (/home/rob/node_modules/simpledb/node_modules/aws-lib/node_modules/xml2js/lib/xml2js.js:145:29)

私は Node.js、simpledb モジュール、および SimpleDB 自体にかなり慣れていませんが、これは simpledb モジュールのバグのように思えます。それ以外の場合、何が間違っているのかわかりません-キー/シークレットが有効であると確信しています(両方を無効に設定して、別々に、または一緒にテストしたため、Amazonから実際のエラーが返されましたキー/シークレットは無効です)。

ただし、このエラーには困惑しています。何か案は?

4

2 に答える 2

1

これは、simpledb ノード モジュールの依存関係の問題であることが判明しました。

こんにちは - これは依存ライブラリの最新バージョンが原因のようです - 新しいバージョン 0.0.8 を再構築して公開しました - これが機能するかどうか教えてください - ありがとう!

ソース。その後、修正されました。

于 2012-04-09T15:55:16.543 に答える
0

参考までに - 最初の投稿以降、AWS は Node.js の公式 SDK を公開しています。 http://docs.aws.amazon.com/nodejs/latest/dg/nodejs-dg-examples.html

var AWS = require('aws-sdk');
AWS.config.update({region: 'us-east-1'});

var db = new AWS.SimpleDB();
db.client.listDomains(function(error, data) {
  if (error) {
    console.log(error);
  } else {
    console.log(data);
  }
});
于 2013-02-27T02:05:59.593 に答える