【发布时间】:2016-12-25 20:51:48
【问题描述】:
您应该在路由处理程序范围之外创建一个数据库连接实例,还是为每个处理程序创建一个实例(例如,app.get('/todos'))?
如果我错了,请纠正我,但我猜第一种方法更好,因为它可以重用相同的连接。但是,我已经看到了为每个路由处理程序创建一个的其他示例。
推荐的方法是什么?还是因为数据库如何缓存连接而有关系?
编辑:我可能对数据库驱动程序的连接方式感到困惑。大多数都提供诸如connectDB(config)之类的方法,您可以在其中指定资源的位置、身份验证等。这实际上是在建立连接还是在您实际使用该数据库对象请求某些内容时启动连接?
【问题讨论】:
-
最佳实践是在路由处理程序范围之外创建数据库连接,如果您为每条路由创建数据库连接,那么您会增加内存消耗,并且在规模上会降低系统性能。