2012-04-06 39 views
2

我試圖獲得使用Node.js/Express運行的Amazon SimpleDB的非常簡單的測試。這是我使用的代碼(AWS鍵/祕密消毒,當然):Node.js + Express + simpledb; 「TypeError:嘗試列出域時無法讀取null屬性'錯誤'

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) 

我很新的節點。 js,simpledb模塊和SimpleDB本身,但這對我來說似乎是simpledb模塊中的一個bug。我無法弄清楚我做錯了什麼,否則 - 我相信我的鑰匙/祕密是有效的(因爲我已經測試了兩個集合無效,單獨和一起,我從亞馬遜返回實際錯誤,表明密鑰/密碼無效)。

雖然這個錯誤讓我難堪。有任何想法嗎?

回答

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

僅供參考 - 自您的原始帖子以來,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); 
    } 
}); 
相關問題