UNPKG

eea-searchserver

Version:

EEA Node.js Search Server module

66 lines (56 loc) 2.35 kB
function SimpleStart(settings){ var searchServer = require('eea-searchserver') var express = require('express'); var morgan = require('morgan'); var path = require('path'); var nconf = require('nconf'); var crontab = require('node-crontab'); var app = searchServer.EEAFacetFramework.framework(app_home = settings.app_dir); var env = process.env.NODE_ENV || 'dev' app.set('nconf', nconf); settings.indexing.app_dir = settings.app_dir; app.set('managementCommands', settings.indexing.managementCommands); app.set('views', settings.views); app.set('view engine', 'jade'); // Skip non-error codes in production var prodLogOpt = {'skip': function(req, res) { return res.statusCode < 400; }}; var loggerFormat = env === 'dev' ? 'dev' : 'combined'; var loggerOpt = env === 'dev' ? {} : prodLogOpt; var logger = morgan(loggerFormat, loggerOpt); app.use(logger); app.use(express.static(path.join(settings.app_dir, 'public'))); app.get('/', settings.routes.routes.index); app.get('/index', settings.routes.routes.index); if (settings.routes.detailsIdName === undefined){ settings.routes.detailsIdName = 'id'; } app.get('/details', function(req, res) {settings.routes.routes.details(req, res, settings.routes.detailsIdName)}); function checkError(err) { if (err) { process.stderr.write(err.message + '\n\n'); process.exit(2); } } // Schedule sync as expressed in env variables // only if running the server var syncCrontab = process.env.SYNC_CRONTAB; if (syncCrontab && process.argv[2] == 'runserver') { crontab.scheduleJob(syncCrontab, function(){settings.indexing.managementCommands.sync_index(settings.indexing)}); console.log("Enabled sync crontab job: " + syncCrontab); } searchServer.Server(app, settings, function(err, srv) { checkError(err); var elastic = srv.nconf.get()['elastic']; console.log("Running with Elastic Backend URL: http://" + elastic.host + ":" + elastic.port + elastic.path + elastic.index + "/" + elastic.type); console.log(""); srv.run(process.argv[2], settings.indexing, process.argv.slice(3), function(err, srv) { checkError(err); console.log("Ran command: " + process.argv[2]); }); }); } module.exports = { "SimpleStart" : SimpleStart }