76 lines
2.0 KiB
JavaScript
76 lines
2.0 KiB
JavaScript
'use strict';
|
|
require('dotenv').config();
|
|
const { ROOT_PATH, LIB_PATH, API_CONFIG } = process.env;
|
|
process.env.TZ='utc';
|
|
|
|
const apiConfig = require( `${ROOT_PATH}/${API_CONFIG}` );
|
|
const apps = require('./apps');
|
|
|
|
const express = require('express');
|
|
const cors = require('cors');
|
|
const compression = require('compression');
|
|
const morgan = require('morgan');
|
|
const helmet = require('helmet');
|
|
const bodyParser = require('body-parser');
|
|
const fileUpload = require('express-fileupload');
|
|
const middlewares = require( './lib//Middlewares.js' );
|
|
|
|
const mongoose = require('mongoose');
|
|
mongoose.connect(
|
|
apiConfig.mongodb,
|
|
{ useNewUrlParser: true }
|
|
).then( ( val ) => {
|
|
console.log( `MongoDB Connected : ${ apiConfig.mongodb }` );
|
|
});//catch throw error so service stops!
|
|
|
|
const app = express();
|
|
const serverPort = process.env.SERVER_PORT || 3000;
|
|
|
|
app.use( middlewares.Auth );
|
|
app.use(
|
|
fileUpload({
|
|
limits: { fileSize: 4 * 1024 * 1024 },
|
|
abortOnLimit: true,
|
|
limitHandler: (req,res,next) => {
|
|
req.limitSize = true;
|
|
},
|
|
})
|
|
);
|
|
app.use((req, res, next) => {
|
|
if (req.limitSize) {
|
|
res.status(413).send({message:"File size limit has been reached",status:"PAYLOAD_TOO_LARGE"});
|
|
}else{
|
|
next()
|
|
}
|
|
|
|
});
|
|
app.use(bodyParser.urlencoded({ extended: true, limit: '50mb' }));
|
|
app.use(bodyParser.json({ limit: '50mb' }));
|
|
app.use(morgan('dev'));
|
|
app.use(helmet({
|
|
crossOriginResourcePolicy: false
|
|
}));
|
|
app.use(compression());
|
|
app.use(cors({
|
|
origin: '*',
|
|
methods: [
|
|
'GET',
|
|
'POST',
|
|
'PATCH',
|
|
'PUT',
|
|
'DELETE'
|
|
],
|
|
allowedHeaders: ['Content-Type', 'Authorization']
|
|
}));
|
|
app.use( middlewares.errorJSON );
|
|
app.use( apps );
|
|
app.use( middlewares.error404 );
|
|
|
|
app.listen( serverPort , function(err){
|
|
if( !err ){
|
|
console.log('API listen on port', serverPort );
|
|
}else{
|
|
console.log( err );
|
|
}
|
|
});
|