此类用于生成和获取有关会话 (Session
对象) 的信息。要创建实例,请使用 Node.js require()
函数,并使用驱动程序名称,如下所示
var nosql = require("mysql-js");
ConnectionProperties
可用于检索或设置给定会话的连接属性。您可以使用 ConnectionProperties
构造函数获取给定适配器的默认连接属性的完整集合,如下所示,将适配器名称(字符串)用作 nameOrProperties
的值
ConnectionProperties(nameOrProperties);
您还可以通过向新的 ConnectionProperties
对象提供属性名称和值的列表,而不是适配器名称来创建自己的 ConnectionProperties
对象。然后,您可以使用此对象为新会话设置连接属性,如下所示
var NdbConnectionProperties = {
"implementation" : "ndb",
"ndb_connectstring" : "localhost:1186",
"database" : "test",
"mysql_user" : "root",
"ndb_connect_retries" : 4,
"ndb_connect_delay" : 5,
"ndb_connect_verbose" : 0,
"linger_on_close_msec": 500,
"use_ndb_async_api" : false,
"ndb_session_pool_min" : 4,
"ndb_session_pool_max" : 100,
};
var sharePath = '/usr/local/mysql/share/nodejs'; // path to share/nodejs
var nosql = require(sharePath);
var dbProperties = nosql.ConnectionProperties(NdbConnectionProperties);
您还可以获取具有适配器默认连接属性的对象,然后更新其中一些属性,然后使用修改后的对象为会话设置连接属性,如下所示
var sharePath = '/usr/local/mysql/share/nodejs'; // path to share/nodejs
var spi = require(sharePath + "/Adapter/impl/SPI"); // under share/nodejs
var serviceProvider = spi.getDBServiceProvider('ndb');
var NdbConnectionProperties = serviceProvider.getDefaultConnectionProperties();
NdbConnectionProperties.mysql_user = 'nodejs_user';
NdbConnectionProperties.database = 'my_nodejs_db';
var dbProperties = nosql.ConnectionProperties(NdbConnectionProperties);
ConnectionProperties
对象包含以下属性
implementation
: 对于使用 NDB Cluster 的 Node.js 应用程序,这始终是 “ndb”.ndb_connectstring
: 用于连接到管理服务器的 NDB Cluster 连接字符串。database
: 要使用的 MySQL 数据库的名称。mysql_user
: MySQL 用户名。ndb_connect_retries
: 在超时前重试失败连接的次数;使用小于 0 的数字来持续重试连接,永不停止。ndb_connect_delay
: 连接重试之间的间隔(以秒为单位)。ndb_connect_verbose
: 1 或 0;1 启用连接期间的额外控制台输出。linger_on_close_msec
: 当客户端关闭DBConnectionPool
时,底层连接将保持打开状态,持续时间为这些毫秒,以防其他客户端尝试重用它。use_ndb_async_api
: 如果为 true,则使用异步调用执行某些操作以提高并发性。如果为 false,则在传输中的操作数量限制为每个工作线程一个。ndb_session_pool_min
: 每个NdbConnectionPool
的DBSession
对象的最小数量。-
ndb_session_pool_max
: 每个NdbConnectionPool
的DBSession
对象的最大数量。每个
NdbConnectionPool
都维护一个DBSession
对象池,以及它们的底层Ndb
对象。此参数与ndb_session_pool_min
一起为该池的大小设置指导原则。
TableMapping
构造函数也可以作为顶级函数使用。您可以通过名称获取映射,或者使用现有映射
TableMapping(tableName);
TableMapping(tableMapping);
openSession(properties, mappings, Function(err, Session) callback);
连接到数据源并在 callback
函数中获取 Session
。这等效于调用 connect()
(参见本节后面部分),然后在回调函数中返回的 SessionFactory
上调用 getSession()
。
执行此方法可能会导致连接到网络上的许多其他节点,等待它们准备好,并向它们发出多个请求。出于此原因,您应避免不必要地打开新会话。
properties
对象的 implementation 成员确定 Session
的实现。
如果 mappings
未定义、为 null 或为空数组,则不会加载或验证任何映射。在这种情况下,任何所需的映射将在执行期间根据需要加载和验证。如果 mappings
包含字符串或构造函数,则表的元数据(或映射的表)将从数据库中加载,并根据映射的要求进行验证。
可以将多个表和构造函数作为数组中的元素传递给 openSession()
。
connect(properties, mappings, Function(err, SessionFactory) callback);
连接到数据源以在 callback
函数中获取 SessionFactory
。为了获取 Session
,您必须在此 SessionFactory
上调用 getSession()
,其实现由 properties
对象的 implementation 成员决定。
如果 mappings
未定义、为 null 或为空数组,则不会加载或验证任何映射。在这种情况下,任何所需的映射将根据需要加载和验证。如果 mappings
包含字符串或构造函数,则表的元数据(或映射的表)将从数据库中加载,并根据映射的要求进行验证。
可以将多个表和构造函数作为数组中的元素传递。
Array getOpenSessionFactories()
获取由该模块创建的所有 SessionFactory
对象的数组。
以下函数是公共 API 的一部分,但并非专为应用程序使用而设计。它们构成了 Mynode
和 SessionFactory
之间契约的一部分。
Connection()
getConnectionKey()
getConnection()
newConnection()
deleteFactory()