-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathserver.js
52 lines (42 loc) · 1.33 KB
/
server.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
'use strict';
const express = require( 'express' );
const cors = require( 'cors' );
const helmet = require( 'helmet' );
const dotEnv = require( 'dotenv' ).config( );
const apiRoutes = require( './routes/api.js' );
const fccTesting = require( './routes/fcctesting.js' );
const runner = require( './test-runner' );
const app = express( );
const PORT = process.env.PORT || 3000;
app.use( '/static', express.static( 'public' ) );
app.use( cors( { origin: '*' } ) ); //For FCC testing purposes only
app.use( express.urlencoded( { extended: true } ) );
app.use( helmet.xssFilter( ) );
// Index page (static HTML).
app.get( '/', ( req,res ) => {
res.sendFile( process.cwd( ) + '/views/index.html' );
} );
fccTesting( app ); // For FCC testing purposes.
apiRoutes( app );
// 404 Not Found Middleware.
app.use( ( req,res,next ) => {
res.status( 404 )
.type( 'text' )
.send( 'Not Found' );
} );
// Start the server and testing suite.
app.listen( PORT, ( ) => {
console.log( "Listening on port " + PORT );
if ( process.env.NODE_ENV === 'test' ) {
console.log( 'Running Tests...' );
setTimeout( ( ) => {
try {
runner.run( );
} catch( error ) {
console.log( 'Tests are not valid:' );
console.log( error );
}
}, 3500 );
}
} );
module.exports = app; // For testing.