我只是好奇而已。在nodejs中使用需求和依赖注入打开数据库连接的正确方法是什么?
在php中,我应该将连接作为全局变量中的单例创建一次。然而,这似乎不是节点中的最佳实践。因此,我有以下问题:
我知道也有类似的问题,但似乎没有完全回答我的问题:
所以我的基本想法是:
/* DbService.js */
var Sequelize = require('sequelize');
module.export = new Sequelize('database', 'username')模型/实例也是如此
/* Foo.js */
var db = require("DbService.js");
export var Foo = db.define('foo', {...});并在代码i中加载db / model
/* server.js */
import Foo from './Foo';
Foo.findById('123').then(function(foo) {
...
};
var db = require("DbService.js");
db.query("SELECT * FROM `test`");然而,在我看来,这总是打开一个独立的db连接,这感觉是不对的。那么你可能会怎么做呢?
发布于 2016-07-11 08:59:20
new Sequelize实例时不是创建单个连接,而是创建连接池。如果您不指定用于池的信任项,则将使用默认情况下最大1连接创建后缀。new Sequelize())实例,您只需初始化连接池。当实际需要出现时,实际连接将被创建并保存在池中,比如执行查询。Sequelize实例,由于nodejs的模块缓存的性质,您将始终在同一个实例中结束,因此连接池是相同的。注: ES6模块尚未在nodejs中实现。
https://stackoverflow.com/questions/38293900
复制相似问题