DynamoDB查询在mocha测试中超时

时间:2016-06-17 16:55:57

标签: node.js dynamo-local

我正在运行一对Docker容器,一个运行DynamoDB本地运行,另一个运行Nodejs。它们是链接的,我可以通过运行确认链接正在运行:

$ aws dynamodb list-tables --endpoint-url=http://dynamodb:8000

我不认为这是问题的一部分,我只是为了完整而将其列在此处。

但是,我无法在mocha中获得以下测试脚本。测试刚刚结束:

  

错误:超过2000毫秒的超时。确保在此测试中调用done()回调。

这是测试脚本:

'use strict';

var expect = require('chai').expect;
var aws = require('aws-sdk');

aws.config.update({ accessKeyId: 'fakeAccessKey', secretAccessKey: 'fakeSecretAccessKey', region: 'fakeRegion',  });
var db = new aws.DynamoDB({ params: { endpoint: 'http://dynamodb:8000' }});

describe('queue-handler', function() {
    it('should connect to dynamodb and list tables', function(done) {
        console.log("Check for tables...");
        db.listTables({}, function(err, data) {
            console.log("list tables returned.");
            if(err)
                console.log("Error listTables: " + JSON.stringify(err, null, 2));
            else
                console.log("listTables: " + JSON.stringify(data, null, 2));
            done();
        });
    });
});

我可以看到"检查表格......"已记录,但没有"返回列表。"。

1 个答案:

答案 0 :(得分:0)

The documentation表明endpoint应该是"直接"属性到选项对象(而不是嵌套在params中):

var db = new aws.DynamoDB({ endpoint: 'http://dynamodb:8000' });