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.
84 lines
1.9 KiB
JavaScript
84 lines
1.9 KiB
JavaScript
'use strict';
|
|
|
|
(function(module) {
|
|
/*
|
|
* Okay, so LevelDB was made by Google. Therefore it's skalable.
|
|
* BUT, I created 99% of the rest of NodeBB's expected functionality out of just simple get and set commands.
|
|
* Therefore, it is unskalable. I totally should have read the docs before starting.
|
|
*
|
|
* With much <3, psychobunny.
|
|
*/
|
|
|
|
|
|
var winston = require('winston'),
|
|
nconf = require('nconf'),
|
|
path = require('path'),
|
|
session = require('express-session'),
|
|
utils = require('./../../public/src/utils.js'),
|
|
levelup,
|
|
leveldown,
|
|
connectLevel,
|
|
db;
|
|
|
|
module.questions = [
|
|
{
|
|
name: "level:database",
|
|
description: "Enter the path to your Level database",
|
|
'default': nconf.get('level:database') || '/var/level/nodebb'
|
|
}
|
|
];
|
|
|
|
module.init = function(callback) {
|
|
try {
|
|
levelup = require('levelup');
|
|
leveldown = require('leveldown');
|
|
connectLevel = require('connect-leveldb')(session);
|
|
} catch (err) {
|
|
winston.error('Unable to initialize Level DB! Is Level DB installed? Error :' + err.message);
|
|
process.exit();
|
|
}
|
|
|
|
if (db) {
|
|
if(typeof callback === 'function') {
|
|
callback();
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
db = levelup(nconf.get('level:database'), {
|
|
valueEncoding: 'json'
|
|
});
|
|
|
|
leveldown(nconf.get('level:database'));
|
|
|
|
db.on('error', function (err) {
|
|
winston.error(err.stack);
|
|
});
|
|
|
|
module.client = db;
|
|
module.leveldown = leveldown;
|
|
|
|
module.sessionStore = new connectLevel({
|
|
db: db,
|
|
ttl: 60 * 60 * 24 * 14
|
|
});
|
|
|
|
require('./level/main')(db, module);
|
|
require('./level/hash')(db, module);
|
|
require('./level/sets')(db, module);
|
|
require('./level/sorted')(db, module);
|
|
require('./level/list')(db, module);
|
|
|
|
if(typeof callback === 'function') {
|
|
callback();
|
|
}
|
|
};
|
|
|
|
module.close = function(callback) {
|
|
db.close(callback);
|
|
};
|
|
|
|
module.helpers = module.helpers || {};
|
|
module.helpers.level = require('./level/helpers');
|
|
}(exports)); |