www 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #!/usr/bin/env node
  2. /**
  3. * Module dependencies.
  4. */
  5. const app = require('../app')
  6. const debug = require('debug')('blog-post:server')
  7. const http = require('http')
  8. const coba = require('../utils/coba')
  9. require('dotenv').config()
  10. /**
  11. * Get port from environment and store in Express.
  12. */
  13. const port = normalizePort(coba.decrypt(process.env.P3UQ5 )|| '3000')
  14. app.set('port', port)
  15. /**
  16. * Create HTTP server.
  17. */
  18. const server = http.createServer(app)
  19. /**
  20. * Listen on provided port, on all network interfaces.
  21. */
  22. server.listen(port)
  23. server.on('error', onError)
  24. server.on('listening', onListening)
  25. /**
  26. * Normalize a port into a number, string, or false.
  27. */
  28. function normalizePort(val) {
  29. const port = parseInt(val, 10)
  30. if (isNaN(port)) {
  31. // named pipe
  32. return val
  33. }
  34. if (port >= 0) {
  35. // port number
  36. return port
  37. }
  38. return false
  39. }
  40. /**
  41. * Event listener for HTTP server "error" event.
  42. */
  43. function onError(error) {
  44. if (error.syscall !== 'listen') {
  45. throw error
  46. }
  47. const bind = typeof port === 'string' ? 'Pipe ' + port : 'Port ' + port
  48. // handle specific listen errors with friendly messages
  49. switch (error.code) {
  50. case 'EACCES':
  51. console.error(bind + ' requires elevated privileges')
  52. process.exit(1)
  53. break
  54. case 'EADDRINUSE':
  55. console.error(bind + ' is already in use')
  56. process.exit(1)
  57. break
  58. default:
  59. throw error
  60. }
  61. }
  62. /**
  63. * Event listener for HTTP server "listening" event.
  64. */
  65. function onListening() {
  66. const addr = server.address()
  67. const bind = typeof addr === 'string' ? 'pipe ' + addr : 'port ' + addr.port
  68. debug('Listening on ' + bind)
  69. }