2012-04-06 4 views
2

Node.js/Expressで動作するAmazon SimpleDBの非常に簡単なテストをしようとしています。これは私が使用しているコードです(AWSキー/もちろん、消毒秘密):Node.js + Express + simpledb; "TypeError:ドメインをリスト表示しようとすると、 'nullのエラー'を読み取れません

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) 

私はノードにかなり新しいです:

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

これは私が得ているエラーです。 js、simpledbモジュール、SimpleDB自体ですが、これは私にはsimpledbモジュールのバグのようです。そうでなければ間違っていることを理解できません。キー/シークレットが有効であると確信しています(私は無効で、別々に、そして一緒にセットしてテストしました。キー/シークレットは無効です)。

このエラーは、私が困惑しています。何か案は?

答えて

1

これはSimpleDBのノードモジュールで依存関係の問題であることが判明:

Hi - this seems to have been caused by the latest version of a dependent lib - I've rebuilt and publish a new version 0.0.8 - please let me know if this works - thanks!

Source.それは以降に修正されました。

0

FYI - 元の投稿以来、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); 
    } 
}); 
関連する問題