.driver
此資料儲存區的通用、無狀態、底層驅動程式 (如果 adapter 支援的話)。
datastore.driver;
並非所有資料庫 adapter 都保證會有此屬性。如果資料儲存區的底層 adapter 不支援標準化的驅動程式介面,則
driver
將不存在。
想像一下您正在建立自己的結構化資料視覺化工具 (例如 phpMyAdmin)。您可能想要動態地連接到任意數量的不同資料庫。
// Get the generic, stateless driver for our database (e.g. MySQL).
var Driver = sails.getDatastore().driver;
// Create our own dynamic connection manager (e.g. connection pool)
var manager = (
await Driver.createManager({ connectionString: req.param('connectionUrl') })
).manager;
var db;
try {
db = (
await Driver.getConnection({ manager: managerReport.manager })
).connection;
} catch (err) {
await Driver.destroyManager({ manager: managerReport.manager });
throw err;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Do some stuff here...
// e.g.
// await Driver.sendNativeQuery({
// connection: db,
// nativeQuery: '...'
// });
// - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Finally, before we continue, tear down the dynamic connection manager.
// (this also takes care of releasing the active connection we acquired above)
await Driver.destroyManager({ manager: managerReport.manager });
return res.ok();