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.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. const express = require('express')
  2. const app = express()
  3. const path = require('path')
  4. const port = process.env.PORT || 3000
  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 cors = require('cors') //Cross-origin resource sharing
  12. const helmet = require('helmet') //Basic protection against attacks like XSS
  13. const config = require('config') //Default configuration file
  14. const swaggerOptions = {
  15. swaggerDefinition: {
  16. info: {
  17. title: 'Diligent node API',
  18. description: 'Diligent node API documentation'
  19. }
  20. },
  21. apis: ['./server.js', './routes/*.js']
  22. }
  23. const swaggerDocs = swaggerJsDoc(swaggerOptions)
  24. app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocs))
  25. app.use(express.json())
  26. app.use(cors())
  27. app.use(helmet())
  28. app.use(userRouter)
  29. app.use(tokenRouter)
  30. app.get('/', (req, res) => {
  31. try {
  32. res.send('Wello Horld!')
  33. } catch (e) {
  34. res.status(500).send(e)
  35. }
  36. })
  37. app.use(errorLogger);
  38. app.use(errorResponder);
  39. app.listen(port, () => {
  40. console.log('Server is up on port ' + port)
  41. })