You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.0 KiB
JavaScript
37 lines
1.0 KiB
JavaScript
'use strict';
|
|
|
|
var nconf = require('nconf');
|
|
var databaseName = nconf.get('database');
|
|
var winston = require('winston');
|
|
|
|
if (!databaseName) {
|
|
winston.error(new Error('Database type not set! Run ./nodebb setup'));
|
|
process.exit();
|
|
}
|
|
|
|
const primaryDB = require('./' + databaseName);
|
|
|
|
primaryDB.parseIntFields = function (data, intFields, requestedFields) {
|
|
intFields.forEach((field) => {
|
|
if (!requestedFields.length || requestedFields.includes(field)) {
|
|
data[field] = parseInt(data[field], 10) || 0;
|
|
}
|
|
});
|
|
};
|
|
|
|
primaryDB.initSessionStore = async function () {
|
|
const sessionStoreConfig = nconf.get('session_store') || nconf.get('redis') || nconf.get(databaseName);
|
|
let sessionStoreDB = primaryDB;
|
|
|
|
if (nconf.get('session_store')) {
|
|
sessionStoreDB = require('./' + sessionStoreConfig.name);
|
|
} else if (nconf.get('redis')) {
|
|
// if redis is specified, use it as session store over others
|
|
sessionStoreDB = require('./redis');
|
|
}
|
|
|
|
primaryDB.sessionStore = await sessionStoreDB.createSessionStore(sessionStoreConfig);
|
|
};
|
|
|
|
module.exports = primaryDB;
|