我有一个连接我的本地mongoDB数据库的函数,但是当我尝试将它放在for循环中时,连接突然不起作用。
var connectMongo = require("./ConnectToMongoDB");
var insertDocument = require("./InsertDocument");
function spamMongoDBtest(){
process.nextTick(function(){
var max = 500;
for(var i = 0; i<max;i++){
setTimeout(function(){
connectMongo(insertDocument);
}, 50);
}
});
}
为什么我会收到这个AssertionError:
AssertionError:null == {[MongoError:connect ECONNREFUSED] name: 'MongoError',消息:'connect ECONNREFUSED'}
connectMongo(insertDocument);是否可以使用此功能:
function spamMongoDB(){
process.nextTick(function(){
setInterval(function(){connectMongo(insertDocument); }, 100); });
}
答案 0 :(得分:1)
您还可以分享HashMap
和 // Getting the entry set (not a copy!)
Set<Entry<String, String>> entries = map.entrySet();
// Add elements to the map afterwards
map.put("abc", "def");
// Check out the entries in the collection
// (magically containing the elements added after getting the collection)
System.out.println(entries); // "[abc=def]"
功能吗?
也许你有太多与Mongo的开放联系。每次编写文档后尝试关闭与Mongo的连接。
您可以使用connectMongo
库来限制测试的并发性。
例如:
insertDocument
答案 1 :(得分:1)
您从MongoDb收到连接错误,因为您尝试多次连接到数据库。您只需要连接到数据库一次,从那一刻起,如果已建立连接,则打开与数据库的通信。
您正在打开连接,一旦打开,您就可以与数据库进行通信。
RewriteEngine On
RewriteBase /subfolder_name/
在var mongoURI = "mongodb://localhost:3030/";
var MongoDB = mongoose.connect(mongoURI).connection;
MongoDB.on('error', function(err) { console.log(err.message); });
MongoDB.once('open', function() {
console.log("mongodb connection open");
insertDocument;
});
功能中,您可以触发open
。或者如果您想坚持使用代码,每次在for循环中打开连接时都必须关闭它。我不知道setInterval
方法包含什么,但在connectMongo
方法之外调用此方法后,您必须关闭连接。但是这种方法无论如何都会对服务器负责,所以我的建议是遵循提供的方法。