UNPKG

2.28 kBJavaScriptView Raw
1module.exports = {
2 start : function(appPath){
3 console.log('YesMan Mocking Server starting...');
4 var debug = require('debug')('myapp');
5 require('./js/globals').appPath = appPath + '/';
6 var app = initExpressApp(appPath);
7 //var userApp = require(appPath + '/' + 'plugins');
8 //userApp(app);
9
10 app.set('port', process.env.PORT || 3000);
11
12 var server = app.listen(app.get('port'), function() {
13 debug('yesman listening on port ' + server.address().port);
14 console.log('yesman listening on port ' + server.address().port + "\n");
15 });
16 }
17}
18
19function initExpressApp() {
20
21 var express = require('express');
22 var path = require('path');
23 var favicon = require('serve-favicon');
24 var logger = require('morgan');
25 var cookieParser = require('cookie-parser');
26 var bodyParser = require('body-parser');
27
28 var routes = require('./routes/index');
29 var users = require('./routes/users');
30
31 var app = express();
32
33 // view engine setup
34 app.set('views', path.join(__dirname, 'views'));
35 app.set('view engine', 'jade');
36
37 // uncomment after placing your favicon in /public
38 //app.use(favicon(__dirname + '/public/favicon.ico'));
39 app.use(logger('dev'));
40 app.use(bodyParser.json());
41 app.use(bodyParser.urlencoded({ extended: false }));
42 app.use(cookieParser());
43 app.use(express.static(path.join(__dirname, 'public')));
44
45 app.use('/', routes);
46 app.use('/users', users);
47
48
49
50
51 // Routes setup has to be done here!!!
52 var appPath = require('./js/globals').appPath;
53 var plugins = require(appPath + '/plugins');
54 plugins(app, module);
55
56 // catch 404 and forward to error handler
57 app.use(function(req, res, next) {
58 var err = new Error('Not Found');
59 err.status = 404;
60 next(err);
61 });
62 // error handlers
63
64 // development error handler
65 // will print stacktrace
66 if (app.get('env') === 'development') {
67 app.use(function(err, req, res, next) {
68 res.status(err.status || 500);
69 res.render('error', {
70 message: err.message,
71 error: err
72 });
73 });
74 }
75
76 // production error handler
77 // no stacktraces leaked to user
78 app.use(function(err, req, res, next) {
79 res.status(err.status || 500);
80 res.render('error', {
81 message: err.message,
82 error: {}
83 });
84 });
85
86 return app;
87
88}
\No newline at end of file