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

'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;