-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathapp.js
68 lines (48 loc) · 1.62 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
var express = require( "express" );
var expressValidator = require( "express-validator" );
var jwt = require( "express-jwt" );
var logger = require( "morgan" );
var bodyParser = require( "body-parser" );
var databaseUtils = require( "api-utils" ).database;
var authUtils = require( "api-utils" ).authentication;
var routes = require( "./routes/index" );
if ( !process.env.RABBIT_URL ) {
console.log( "RABBIT_URL environment variable not defined" );
process.exit( 1 );
}
var db = databaseUtils.mongooseConnection( "DB_PORT" );
var app = express();
app.use( logger( "dev" ) );
app.use( bodyParser.json() );
app.use( expressValidator() );
app.use( bodyParser.urlencoded( { extended: false} ) );
app.use( authUtils.systemAPIKey( [ "/pin-config" ] ) );
var authNotRequired = [ "/register", "/authenticate", "/pin-config" ];
app.use( jwt( { secret: process.env.JWT_SECRET } ).unless( { path: authNotRequired } ) );
app.use( "/", routes );
// catch 404 and forward to error handler
app.use( function ( req, res, next ) {
var err = new Error( "Not Found" );
err.status = 404;
next( err );
} );
// error handlers
// development error handler
// will print stacktrace
if ( app.get( "env" ) === "development" ) {
app.use( function ( err, req, res, next ) {
return res.status( err.status || 500 ).json( {
message: err.message,
error: err
} );
} );
}
// production error handler
// no stacktraces leaked to user
app.use( function ( err, req, res, next ) {
res.status( err.status || 500 ).json( {
message: err.message,
error: {}
} );
} );
module.exports = app;