47 lines
1.4 KiB
JavaScript
47 lines
1.4 KiB
JavaScript
const express = require('express');
|
|
const bodyParser = require('body-parser');
|
|
const expressMongoDb = require('./middleware/mongo');
|
|
const users = require('./routes/user');
|
|
const vehicles = require('./routes/vehicles');
|
|
const events = require('./routes/events');
|
|
const app = express();
|
|
const bearerToken = require('express-bearer-token');
|
|
const jwt = require('./middleware/jwt');
|
|
const https = require('https');
|
|
const fs = require('fs');
|
|
const compression = require('compression');
|
|
const dotenv = require('dotenv');
|
|
const dotenvExpand = require('dotenv-expand');
|
|
const responseTime = require('response-time');
|
|
|
|
let dotenvConf = dotenv.config();
|
|
dotenvExpand(dotenvConf);
|
|
|
|
app.use(responseTime(function (req, res, time) {
|
|
var stat = (req.method + req.url).toLowerCase()
|
|
.replace(/[:.]/g, '')
|
|
.replace(/\//g, '_');
|
|
console.log(`${stat} - ${time}`);
|
|
}));
|
|
|
|
app.use(compression());
|
|
app.use(bodyParser.json());
|
|
app.use(expressMongoDb(process.env.MONGO_CONNECTION_STRING));
|
|
app.use(bearerToken());
|
|
app.use(jwt({ secret: process.env.JWT_SECRET_AUTH, exclude: ['/user/signup', '/user/login', '/vehicles/shared_report'] }));
|
|
|
|
app.use('/user', users);
|
|
app.use('/vehicles', vehicles);
|
|
app.use('/events', events);
|
|
|
|
if(process.env.NODE_ENV == 'production') {
|
|
const httpsServer = https.createServer({
|
|
key: fs.readFileSync(process.env.PRIVATE_KEY_PATH),
|
|
cert: fs.readFileSync(process.env.CERT_PATH)
|
|
}, app);
|
|
httpsServer.listen(8443);
|
|
} else {
|
|
app.listen(3000);
|
|
}
|
|
|