我有三个数据库,每个数据库都有一个MongoDB中名为'items'的集合,我想从node.js连接到它。在开始连接之前,我获取了一个包含这些数据库名称的数组,然后使用async.map()为每个数据库创建连接。执行最终回调时,所有连接都已打开,但过程似乎被阻止,不再继续。下面是我的coffeescript代码。
fs = require 'fs'
jf = require 'jsonfile'
MongoClient = (require 'mongodb').MongoClient
async = require 'async'
getConfigFileName = () ->
process.argv[2]
transformed = (err, transformed) ->
console.log transformed
connectMongoDB = (dbEntry, callback) ->
MongoClient.connect "mongodb://localhost:12345/" + dbEntry.databaseName, (err, db) ->
if err
callback err, dbEntry
else
dbEntry.connection = db
callback null, dbEntry
# Start Execution Here.
configFileName = getConfigFileName()
databases = jf.readFileSync configFileName
async.map databases, connectMongoDB, transformed
我认为阻塞是由mongo客户端引起的,但我不确定如何解决这个问题。
答案 0 :(得分:1)
这是预期的,因为您现在已经打开了与mongo数据库的网络连接。如果你关闭它们,你会发现你的过程会自然退出。