gpt4 book ai didi

mysql - 我们如何在sequelize中关闭数据库 `connection`

转载 作者:行者123 更新时间:2023-12-03 22:25:32 25 4
gpt4 key购买 nike

我们如何关闭下面 connection 中的数据库 app.postsequelize 会自动处理吗?server.js

const sequelize = new Sequelize(DB_NAME, DB_USERNAME, DB_PASSWORD, {
host: DB_HOST,
dialect: DB_DIALECT,
pool: DB_POOL,
port: DB_PORT
});

const Availability = availabilitySchema(sequelize, DataTypes);

app.post('/service/availability', async (req, res) => {
try {
const userEmail = req.query.email;
const dailyStatus = req.body.dailystatus;
var playerData = {email:userEmail, dailystatus: dailyStatus};
const playerDailyStatus = await Availability.create(playerData);
res.status(200).json({ success: true });
} catch (e) {
res.status(500).json({ message: e.message });
}
});

最佳答案

据我所知(我昨天才开始看 sequelize - 如果我错了,请发表评论)Sequelize 汇集了它的连接,所以实际上没有什么可以关闭的;它像任何其他 ORM 一样根据需要打开和关闭连接,并且大多数这些连接是打开的并存在于池中,从池中租用并执行一些工作,然后返回到池中。如果您想限制与您的数据库同时打开的连接数,您可以配置池选项(看起来您已经有了),但如果您在数据库管理器中查看并看到“天哪,我的 Sequelize 应用程序有 5 个打开的连接。 ……现在有 10 个……现在是 15 个!”事情就是这样;它根据需要打开尽可能多的连接(最多可达最大值)来为工作负载提供服务,并使它们保持打开状态,因为实际打开(TCP 连接)和不断关闭它们(TCP 断开连接)会浪费大量时间。
使用 ORM 时,您不会对连接进行微观管理,您只需使用建模对象执行查询,并让 ORM 处理低级内容(打开和关闭连接是制作要运行的 SQL 的一个级别,并且您手动这也适用于 ORM)。即使在其他地方你已经习惯了,比如 C# new SqlConnection("connstr").Open() 可能实际上并没有打开到数据库的 TCP 连接并关闭它;它可能只是租用并返回到池中,底层框架管理实际的 TCP 连接及其状态

关于mysql - 我们如何在sequelize中关闭数据库 `connection`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62619018/

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