-
Notifications
You must be signed in to change notification settings - Fork 16
Drivers
mlaanderson edited this page Dec 12, 2017
·
8 revisions
This page lists currently known drivers and some brief instructions on creating new drivers.
Writing a new wrapper around an existing database implementation in Node is fairly straight forward. The database-js-mysql wrapper is a good place to start. Generally the pattern will be like this:
var baseDriver = require('base-driver');
var m_connection = Symbol('connection');
class Wrapper {
constructor(connection) {
this[m_connection] = connection;
}
query(sql) {
var self = this;
return new Promise((resolve, reject) => {
self[m_connection].query(sql, (error, data, fields) => {
if (error) {
reject(error);
} else {
resolve(data);
}
});
});
}
execute(sql) {
return new Promise((resolve, reject) => {
self[m_connection].execute(sql, (error, data, fields) => {
if (error) {
reject(error);
} else {
resolve(data);
}
});
});
}
close() {
var self = this;
return new Promise((resolve, reject) => {
self[m_connection].close((err) => {
if (err) {
reject(err);
} else {
resolve();
}
});
});
}
}
module.exports = {
open: function(connection) {
let base = baseDriver.createConnection({
host: connection.Hostname || 'localhost',
port: parseInt(connection.Port) || 3306,
user: connection.Username,
password: connection.Password,
database: connection.Database
})
return new Wrapper(base);
}
};