Sails应用程序连接到MySql / PgSql错误

时间:2015-03-06 15:44:08

标签: mysql postgresql sails.js supertest sails-postgresql

在我的Sails应用程序中,我在Mocha / Chai / Supertest中进行了一些针对sails-disk数据库运行的集成测试,直到今天。今天我尝试切换到实际的数据库,测试我的模型的性能和行为以及可靠性。安装了Mongo,运行测试,一切正常。

然而,在我为MySql和PgSql以及本地的两个数据库套件安装了sails适配器后,我遇到了针对这两个数据库运行测试的问题。当我发现行为相似时,我选择在同一个帖子中详细说明它们。

PgSql:测试通过的一半,那些未通过的测试通道最初不会抛出任何特定错误。但是,当我调试它们时,我发现它们会抛出“socket hang up”错误。

MySql:在这里,如果我运行测试,所有测试都会失败,如果我一步一步地调试它们就会通过。请注意,没有一个测试具有奇怪的异步行为,这可以解释为什么它们可以在调试时通过(应用程序在断点之间有时间执行'预期'的东西),它们非常简单明了。

到目前为止还没有找到解决方案或解释。我正在开发Windwos 7 X64操作系统。

更新:在进一步检查时,由于超时错误(由于某种原因未显示为超时错误),某些测试似乎失败了。在设置了稍微高一点的mocha超时之后,现在更多的测试通过,这有点奇怪,因为在mongo上任何测试套件都需要不到一秒的时间才能运行。 对于那些在此扩展超时设置上仍然失败的测试,它看起来像在调试期间永远不会到达控制器。我正在使用supertest来解决请求,经过一些修改后现在看起来像这样:

var testReq = request(sailsAppEndpoint)
      .get(specificLink)
      .set('Authorization', token)
      .expect(200);
testReq.end(function (err, res) {
        expect(err).to.be.null;
});

由于某种原因,在.end函数内部永远不会调用回调。还在调查这个。

0 个答案:

没有答案