mirror of
https://github.com/taobataoma/meanTorrent.git
synced 2026-04-14 07:57:51 +02:00
Refactoring server application service to enable modularity and callbacks, as well as provide app, db, config variables outside of server.js
This commit is contained in:
52
config/lib/app.js
Normal file
52
config/lib/app.js
Normal file
@@ -0,0 +1,52 @@
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
var config = require('../config'),
|
||||
mongoose = require('./mongoose'),
|
||||
express = require('./express'),
|
||||
chalk = require('chalk');
|
||||
|
||||
// Initialize Models
|
||||
mongoose.loadModels();
|
||||
|
||||
module.exports.loadModels = function loadModels() {
|
||||
mongoose.loadModels();
|
||||
};
|
||||
|
||||
module.exports.init = function init(callback) {
|
||||
|
||||
mongoose.connect(function (db) {
|
||||
// Initialize express
|
||||
var app = express.init(db);
|
||||
if (callback) callback(app, db, config);
|
||||
|
||||
});
|
||||
};
|
||||
|
||||
module.exports.start = function start(callback) {
|
||||
var _this = this;
|
||||
|
||||
_this.init(function(app, db, config) {
|
||||
|
||||
// Start the app by listening on <port>
|
||||
app.listen(config.port, function() {
|
||||
|
||||
// Logging initialization
|
||||
console.log('--');
|
||||
console.log(chalk.green(config.app.title));
|
||||
console.log(chalk.green('Environment:\t\t\t' + process.env.NODE_ENV));
|
||||
console.log(chalk.green('Port:\t\t\t\t' + config.port));
|
||||
console.log(chalk.green('Database:\t\t\t\t' + config.db.uri));
|
||||
if (process.env.NODE_ENV === 'secure') {
|
||||
console.log(chalk.green('HTTPs:\t\t\t\ton'));
|
||||
}
|
||||
console.log('--');
|
||||
|
||||
if (callback) callback(app, db, config);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
};
|
||||
@@ -30,9 +30,6 @@ module.exports.connect = function(cb) {
|
||||
// Enabling mongoose debug mode if required
|
||||
mongoose.set('debug', config.db.debug);
|
||||
|
||||
// Load modules
|
||||
_this.loadModels();
|
||||
|
||||
// Call callback FN
|
||||
if (cb) cb(db);
|
||||
}
|
||||
|
||||
21
gruntfile.js
21
gruntfile.js
@@ -234,6 +234,20 @@ module.exports = function (grunt) {
|
||||
});
|
||||
});
|
||||
|
||||
grunt.task.registerTask('server', 'Starting the server', function() {
|
||||
// Get the callback
|
||||
var done = this.async();
|
||||
|
||||
var path = require('path');
|
||||
var app = require(path.resolve('./config/lib/app'));
|
||||
var server = app.start(function() {
|
||||
done();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
// Lint CSS and JavaScript files.
|
||||
grunt.registerTask('lint', ['sass', 'less', 'jshint', 'csslint']);
|
||||
|
||||
@@ -241,10 +255,9 @@ module.exports = function (grunt) {
|
||||
grunt.registerTask('build', ['env:dev', 'lint', 'ngAnnotate', 'uglify', 'cssmin']);
|
||||
|
||||
// Run the project tests
|
||||
grunt.registerTask('test', ['env:test', 'lint', 'mkdir:upload', 'copy:localConfig', 'mongoose', 'mochaTest', 'karma:unit']);
|
||||
grunt.registerTask('test:server', ['env:test', 'lint', 'mongoose', 'mochaTest']);
|
||||
grunt.registerTask('test:client', ['env:test', 'lint', 'mongoose', 'karma:unit']);
|
||||
|
||||
grunt.registerTask('test', ['env:test', 'lint', 'mkdir:upload', 'copy:localConfig', 'server', 'mochaTest', 'karma:unit']);
|
||||
grunt.registerTask('test:server', ['env:test', 'lint', 'server', 'mochaTest']);
|
||||
grunt.registerTask('test:client', ['env:test', 'lint', 'server', 'karma:unit']);
|
||||
// Run the project in development mode
|
||||
grunt.registerTask('default', ['env:dev', 'lint', 'mkdir:upload', 'copy:localConfig', 'concurrent:default']);
|
||||
|
||||
|
||||
31
server.js
31
server.js
@@ -3,32 +3,5 @@
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
var config = require('./config/config'),
|
||||
mongoose = require('./config/lib/mongoose'),
|
||||
express = require('./config/lib/express'),
|
||||
chalk = require('chalk');
|
||||
|
||||
/**
|
||||
* Main application entry file.
|
||||
* Please note that the order of loading is important.
|
||||
*/
|
||||
|
||||
// Initialize mongoose
|
||||
mongoose.connect(function (db) {
|
||||
// Initialize express
|
||||
var app = express.init(db);
|
||||
|
||||
// Start the app by listening on <port>
|
||||
app.listen(config.port);
|
||||
|
||||
// Logging initialization
|
||||
console.log('--');
|
||||
console.log(chalk.green(config.app.title));
|
||||
console.log(chalk.green('Environment:\t\t\t' + process.env.NODE_ENV));
|
||||
console.log(chalk.green('Port:\t\t\t\t' + config.port));
|
||||
console.log(chalk.green('Database:\t\t\t\t' + config.db.uri));
|
||||
if (process.env.NODE_ENV === 'secure') {
|
||||
console.log(chalk.green('HTTPs:\t\t\t\ton'));
|
||||
}
|
||||
console.log('--');
|
||||
});
|
||||
var app = require('./config/lib/app');
|
||||
var server = app.start();
|
||||
|
||||
Reference in New Issue
Block a user