Created
February 11, 2015 17:03
-
-
Save mborodov/1d81636797eb92dd455d to your computer and use it in GitHub Desktop.
Основной файл приложения(точка входа)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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