# Драйвер базы данных
Класс драйвера должен наследоваться от стандартного
EventEmitter
(opens new window).
Конструктор принимает 2 агрумента: конфигурация и её название.
Пример:
// conf == require('dc-api-core/config').db[confName]
constructor (conf, confName) {
super();
this.connection = createDatabaseConnection(options, err => {
this.emit('connected', err);
});
}
# События
# connected
Аргументы:
error: Error
- необязательный объект ошибки, возникшей в ходе подключения к БД
Использование:
Данное событие должно вызываться сразу после подключения к базе без аргументов, либо при возникновении ошибки во время подключения с передачей объекта Error.
# no-model
Аргументы:
name: String
- название модели
Использование:
Событие используется для сообщения пользователю об отсутствии модели базы данных.
Пример использования события показан в методе getModel
.
# Методы
# getModel
Аргументы:
name: String
- название модели
Использование:
Этот метод вызывается для получения объекта модели базы данных по её названию.
Пример:
const log = require('dc-api-core/log');
const ROOT = process.cwd();
class Driver {
// ...
getModel (name) {
try {
parseSchema(`${ROOT}/models/${this.confName}/${name}.schema`)
} catch (err) {
if (err.code == 'ENOENT') this.emit('no-model', name);
else log.error('Database model parse error', err);
return;
}
}
}