-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
40 lines (31 loc) · 1.03 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
'use strict';
// requirements constants
const express = require('express');
const app = express();
const cors = require('cors');
const { requestTime } = require('./middleware/timestamp');
const logger = require('./middleware/logger.js');
const notFoundHandler = require('./middleware/404');
const serverErrorHandler = require('./middleware/500');
// Global MiddleWare where you could call it anywhere and has a global scope
app.use(express.json());
app.use(cors());
app.use(requestTime);
app.use(logger);
app.use(serverErrorHandler);
// custom all containing route
const v1Router = require('./routes/api-vs');
app.use('/api/v1', v1Router);
// annoying favicon request
app.get('/favicon.ico', (req, res) => res.status(204));
// mock error route
app.get('/bad', (req, res) => {throw new Error('bad Request .... ');});
// error routes
app.use('*', notFoundHandler);
module.exports = {
server: app,
start: port => {
let PORT = port || process.env.PORT || 5000;
app.listen(PORT, ()=> console.log(`Listening on port ${PORT}`));
},
};