Node.js + Express + simpledb; “TypeError:尝试列出域时,无法读取属性”错误的null“

我正在尝试使用Node.js / Express运行的Amazon SimpleDB进行一个非常简单的testing。 这是我正在使用的代码(当然,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模块中的一个bug。 我不知道我在做什么错误,否则我相信我的关键/秘密是有效的(因为我已经testing了两个集合无效,单独和一起,我回来了亚马逊的实际错误,表明密钥/密码无效)。

但是,这个错误让我难住了。 有任何想法吗?

这原来是simpledb节点模块中的依赖项问题:

嗨 – 这似乎是由依赖库的最新版本引起的 – 我已经重build并发布了一个新的版本0.0.8 – 请让我知道如果这个工程 – 谢谢!

资源。 它从那以后被修理了。

仅供参考 – 自您的原始文章以来,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); } });