gpt4 book ai didi

node.js - Nodejs 测试中 Mongodb 连接未关闭

转载 作者:太空宇宙 更新时间:2023-11-03 22:32:23 25 4
gpt4 key购买 nike

因此,我有一套 cucumber 测试,在 BeforeFeatures 部分中,我在同一服务器上创建了与 2 个数据库的连接,我已将池设置为 2,以便在连接 4 个连接时可以看到发生(2 个数据库,2 个池)。

最后我关闭数据库,如下所示:

var closeDatabase = function(callback) {
db1.close(function(){
db2.close(function(){
console.log("DONE");
callback();
});
});
};

现在它被调用,我看到控制台输出并且进程关闭,因此两个数据库连接都应该关闭。但是,如果我查看 mongodb 日志:

2016-01-14T11:45:05.813+0000 [initandlisten] MongoDB starting : pid=888 port=27017 dbpath=C:\Tools\mongodb\data 64-bit host=SomePC
2016-01-14T11:45:05.818+0000 [initandlisten] targetMinOS: Windows 7/Windows Server 2008 R2
2016-01-14T11:45:05.821+0000 [initandlisten] db version v2.6.7
2016-01-14T11:45:05.822+0000 [initandlisten] git version: a7d57ad27c382de82e9cb93bf983a80fd9ac9899
2016-01-14T11:45:05.826+0000 [initandlisten] build info: windows sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1') BOOST_LIB_VERSION=1_49
2016-01-14T11:45:05.829+0000 [initandlisten] allocator: system
2016-01-14T11:45:05.830+0000 [initandlisten] options: { storage: { dbPath: "C:\Tools\mongodb\data" } }
2016-01-14T11:45:05.846+0000 [initandlisten] journal dir=C:\Tools\mongodb\data\journal
2016-01-14T11:45:05.848+0000 [initandlisten] recover : no journal files present, no recovery needed
2016-01-14T11:45:05.871+0000 [initandlisten] waiting for connections on port 27017
2016-01-14T11:45:11.639+0000 [initandlisten] connection accepted from 127.0.0.1:51841 #1 (1 connection now open)
2016-01-14T11:45:11.646+0000 [conn1] end connection 127.0.0.1:51841 (0 connections now open)
2016-01-14T11:45:11.650+0000 [initandlisten] connection accepted from 127.0.0.1:51842 #2 (1 connection now open)
2016-01-14T11:45:11.653+0000 [initandlisten] connection accepted from 127.0.0.1:51843 #3 (2 connections now open)
2016-01-14T11:45:11.659+0000 [initandlisten] connection accepted from 127.0.0.1:51844 #4 (3 connections now open)
2016-01-14T11:45:11.662+0000 [conn4] end connection 127.0.0.1:51844 (2 connections now open)
2016-01-14T11:45:11.665+0000 [initandlisten] connection accepted from 127.0.0.1:51845 #5 (3 connections now open)
2016-01-14T11:45:11.669+0000 [initandlisten] connection accepted from 127.0.0.1:51846 #6 (4 connections now open)
2016-01-14T11:45:11.689+0000 [conn5] end connection 127.0.0.1:51845 (3 connections now open)
2016-01-14T11:45:11.689+0000 [conn6] end connection 127.0.0.1:51846 (3 connections now open)
2016-01-14T11:45:11.690+0000 [conn2] end connection 127.0.0.1:51842 (3 connections now open)
2016-01-14T11:45:11.690+0000 [conn3] end connection 127.0.0.1:51843 (3 connections now open)

因此,虽然最后 2 个连接已结束,但 4 个连接中的 3 个似乎仍处于事件状态。也就是说,如果我们查看端口,它似乎激活了 6 个端口,即使它只有 4 个连接。

这常见吗?我应该担心还是我做错了什么?这是一个问题的全部原因是因为当我尝试使用连接时出现错误:

MongoError:服务器本地主机:27017 套接字已关闭

所以我有点困惑为什么当我尝试使用连接时它似乎过度分配和轰炸。

最佳答案

所以错误是正确的,它关闭了连接然后使用它们,由于控制台输出在 Windows 上发生的方式,它们并不总是 100% 以正确的顺序。事实证明, cucumber 正在某个区域无声无息地爆炸,并在这里产生了链式 react 。

关于node.js - Nodejs 测试中 Mongodb 连接未关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34788877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com