You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

server.js 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. const config = require('config') //Default configuration file
  2. const express = require('express')
  3. const app = express()
  4. const port = process.env.NODE_ENV === 'production' ? 80 : 3001
  5. require('./database/mongoose')
  6. const userRouter = require('./routes/user')
  7. const tokenRouter = require('./routes/token')
  8. const swaggerJsDoc = require("swagger-jsdoc")
  9. const swaggerUi = require("swagger-ui-express")
  10. const { errorLogger, errorResponder } = require('./middleware/errorHandling.js')
  11. const requestLogging = require('./middleware/requestLogging.js')
  12. const cors = require('cors') //Cross-origin resource sharing
  13. const helmet = require('helmet') //Basic protection against attacks like XSS
  14. const fs = require('fs')
  15. const path = require('path')
  16. const routesDirectory = path.resolve(__dirname) + '\\routes\\'
  17. // console.log(config.util.getEnv('NODE_ENV'))
  18. const swaggerOptions = {
  19. swaggerDefinition: {
  20. info: {
  21. title: 'Diligent node API',
  22. description: 'Diligent node API documentation'
  23. }
  24. },
  25. apis: ['./server.js', './routes/*.js']
  26. }
  27. const swaggerDocs = swaggerJsDoc(swaggerOptions)
  28. app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocs))
  29. app.use(errorLogger);
  30. app.use(errorResponder);
  31. app.use(express.json())
  32. app.use(requestLogging)
  33. app.use(cors())
  34. app.use(helmet())
  35. fs.readdirSync(routesDirectory).forEach(route => {
  36. app.use(require(routesDirectory + route))
  37. })
  38. app.use(userRouter)
  39. app.use(tokenRouter)
  40. app.get('/', (req, res) => {
  41. try {
  42. res.send('Wello Horld!')
  43. } catch (e) {
  44. res.status(500).send(e)
  45. }
  46. })
  47. app.listen(port, () => {
  48. console.log('Server is up on port ' + port)
  49. })