mongodb中的紧密连接-应用程序卡住了-很好吗?

时间:2018-08-16 12:20:07

标签: node.js mongodb

我有以下mongo类来处理连接

export default class MongoService {
    constructor ({ config }) {
        this.options = {}
        this.connection = null
        this.config = config
        Object.assign(this.options, config.get('mongo'))
    }

async closeConnection(){
    this.connection.close()
}

async connect(){

    if (!this.options.url) {
        throw new Error('Db error')
    }

    return MongoClient.connect(this.options.url,{ useNewUrlParser: true })
}

async getConnection() {

    if (!this.connection) {
        this.connection = await this.connect()
    }

    return this.connection
}

async  getCollection(collectionName) {
    await this.getConnection()
    let db = this.connection.db(this.options.dbname)
    return  await db.collection(collectionName)
}

我如何在其他文件中使用:

try {
    var mongo = container.cradle.mongoService
    let collection = await mongo.getCollection('test')
    const cursor = collection.find({})
}catch(e){
    throw new Error(e)
}finally {
    await mongo.closeConnection()
}

我的问题

1-我的服务足够好吗?

2-我每次要求收集时都需要使用mongo.closeConnection吗?

如果我不使用关闭功能(我读得很好),则应用程序被卡住而不关闭 例如我得到了水库,但没有关闭它(如果需要) 或者我只需要删除final并从关闭中忘记

0 个答案:

没有答案