You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ambar2/ServiceApi/src/index.js

52 lines
1.3 KiB
JavaScript

import http from 'http'
import express from 'express'
import cors from 'cors'
import bodyParser from 'body-parser'
import api from './api'
import config from './config'
import { ErrorHandlerService, EsProxy, MongoProxy, StorageService } from './services'
const createLogRecord = (type, message) => ({
type: type,
source_id: 'serviceapi',
message: message
})
let app = express()
app.server = http.createServer(app)
app.use(cors({
credentials: true,
origin: true
}))
app.use(bodyParser.json({
limit: config.bodyLimit
}))
// connect to storage
StorageService.initializeStorage()
.then((storage) =>
MongoProxy.initDefaultTaggingRules(storage.mongoDb)
.then(() => {
app.use('/api', api({ config, storage }))
app.use(ErrorHandlerService(storage.elasticSearch))
app.server.listen(process.env.PORT || config.localPort)
//eslint-disable-next-line no-console
console.log(`Started on ${app.server.address().address}:${app.server.address().port}`)
EsProxy.indexLogItem(
storage.elasticSearch,
createLogRecord('info', `Started on ${app.server.address().address}:${app.server.address().port}`)
)
})
)
.catch((err) => {
//eslint-disable-next-line no-console
console.log('Catastrophic failure!', err.toString())
process.exit(1)
})
export default app