gpt4 book ai didi

javascript - Mongodb + Node : When to close

转载 作者:太空宇宙 更新时间:2023-11-04 00:24:05 24 4
gpt4 key购买 nike

我正在开发 Koa + Mongodb 后端。我的问题是:我什么时候应该关闭数据库,或者 Mongodb 是否管理它,因为我现在没有关闭它们中的任何一个,看起来很好。

// app.js
const Koa = require('koa')
const database = require('./database')
const app = new Koa()
database
.connet()
.then(() => {app.listen(':8080')})
.catch((err) => {console.error(err)})


// ./database.js
const MongoClient = require('mongodb').MongoClient
const Model = require('./model')

class Database {
async connect() {
if (!db) {
db = await MongoClient.connect("localhost:27017")
this.item = new Model(db, 'item_collection')
}
}
}

module.exports = new Database()

// ./model.js
class Model {
constructor(db, collectionName) {
this.name = collectionName
this.database = database
}
async findAll() {
const result = await this.db.collection(this.name).find().toArray()
if (!result) {
throw new Error('error')
}
return result
}
}

module.exports = Model

我还使用 vegeta 进行了压力测试,以 100 个请求/秒的速度向服务器发出 API 请求,响应时间很好。那么,我担心这里的过早优化吗?如果没有,我什么时候应该关闭数据库?

最佳答案

随着 Koa 继续运行(在您的情况下监听端口 8080),您不应该关闭数据库连接。

如果您正在运行预计会结束的脚本(在 cron 上运行的任务等),您应该在完成所有数据库任务后手动关闭连接。

您可以看看this example对于express.js(Koa的姐妹框架)

关于javascript - Mongodb + Node : When to close,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43522951/

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