Node.js AWS SDK请求不在一个文件中接收响应数据,而不是另一个

我确定我在这里做了一些愚蠢的事,或者至less错过了一些显而易见的事情。 只需在官方AWS SDK模块上运行一些非常基本的示例。 我创build了两个空文件,一个在现有的较大的Node.js项目的目录中,另一个在另一个单独的目录中,远离这个其他项目。 这两个目录都包含由NPM创build的node_modules目录,其中包括aws-sdk模块,在这两种情况下都是相同的版本,0.9.5-pre.6。

在这两个空文件我把下面的代码:

// Include the AWS module var AWS = require('aws-sdk'); AWS.config.update({ accessKeyId: 'OUR_SECURITY_KEY', secretAccessKey: 'OUR_ACCESS_KEY' }); AWS.config.update({region: 'OUR_REGION'}); // Create a Simple Queue Service instance var sqs = new AWS.SQS(); // Retrieve a list of available queues on our account sqs.client.listQueues(function (err, data) { if (err) { console.log(err); } else { console.log(data); } }); 

只需要一小段代码即可在我们的账户中检索SQS中的队列列表。 对于logging来说,如果我创buildS3客户端并尝试检索S3存储桶的列表,结果是一样的。

当我在其他项目的目录中运行该文件…

 node testfile.js 

…我在terminal窗口中看到响应数据…

 { ResponseMetadata: { RequestId: 'SOME_REQUEST_ID' }, QueueUrls: [ 'THE_CORRECT_URL_OF_MY_QUEUE' ] } 

…这是我想要的。 如果我对另一个目录中的文件做同样的事情,我会得到一个空的对象…

 {} 

这似乎是这样,或者至less在我尝试过的所有不同的请求中类似。 如果我尝试sendMessage向队列中插入消息,它将在两个文件中工作,但问题文件再次收到一个空的响应对象,而“工作”文件接收通常的响应数据。

任何我想忽略什么愚蠢的事情的想法将不胜感激!

只是有相同的问题(所有请求返回{})。 问题是XMLparsing – 即xml2js。 我在aws-sdk依赖关系中用0.2.4手动replace了xml2js 0.2.5。 这解决了我的问题。

编辑:

更新xml2js到最新再次和问题似乎是固定的:

https://github.com/aws/aws-sdk-js/issues/69

https://github.com/Leonidas-from-XIV/node-xml2js/issues/76

多米尼克