Skip to content

Instantly share code, notes, and snippets.

@mborodov
Created February 11, 2015 17:03
Show Gist options
  • Save mborodov/1d81636797eb92dd455d to your computer and use it in GitHub Desktop.
Save mborodov/1d81636797eb92dd455d to your computer and use it in GitHub Desktop.
Основной файл приложения(точка входа)
require('nodetime').profile({
accountKey: 'df8e42b0904666b56f5bd4115cfff1a014f52494',
appName: 'Fb-api Application'
});
// Подключаем модули и определяем переменные
var express = require('express'),
mongoose = require('mongoose'),
fs = require('fs'),
config = require('./config'),
logger = require('./lib/logger'),
schedule = require('node-schedule'),
http = require('http'),
mailChimpApi = require('mailchimp').MailChimpAPI,
jwt = require('jsonwebtoken');
// Создадим файл лога если его нет
fs.closeSync(fs.openSync(config.root+'/logs/fb-debug.log', 'w'));
// Глобальный Catch
process.on('uncaughtException', function(err) {
console.error('uncaught exception: ' + err.stack);
process.exit(1);
});
//Соединяемся с mongo
mongoose.connect(config.db, { server: { keepAlive: 1, auto_reconnect: true } });
var db = mongoose.connection;
// При ошибке соедиения с базой данных
db.on('error', function () {
logger.error('Ошибка соединения с сервером %s.', config.db);
mongoose.disconnect();
})
// При удачном соединение с базой данных
db.on('open', function () {
logger.info('Соединение с Mongo сервером %s установлено.', config.db)
// Настройка подключения моделей Mongoose
var modelsPath = __dirname + '/app/models';
fs.readdirSync(modelsPath).forEach(function (file) {
if (file.indexOf('.js') >= 0) {
db[file.replace('.js', '')] = require(modelsPath + '/' + file)(mongoose, db, logger)
}
});
// Подключим сервисные утилиты. ВАЖНО!!!
var utils = require('./lib/utils')(jwt, config, logger, db, fs, http, mailChimpApi);
// Создаем сервер
var app = express(),
http = require('http').createServer(app);
// Подключаем настройки сервера
require('./config/express')(app, utils, config);
require('./config/routes')(app, utils, logger, db, config, jwt);
require('./config/schedule')(app, schedule, utils, logger, db);
// Запуск сервера
http.listen(3000, "127.0.0.1", function () {
logger.info("FastBudget API сервер запущен на");
})
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment