index.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. const express = require("express")
  2. const { GracefulShutdownServer } = require("medusa-core-utils")
  3. const loaders = require("@medusajs/medusa/dist/loaders/index").default
  4. ;(async() => {
  5. async function start() {
  6. const app = express()
  7. const directory = process.cwd()
  8. try {
  9. const { container } = await loaders({
  10. directory,
  11. expressApp: app
  12. })
  13. const configModule = container.resolve("configModule")
  14. const port = process.env.PORT ?? configModule.projectConfig.port ?? 9000
  15. const server = GracefulShutdownServer.create(
  16. app.listen(port, (err) => {
  17. if (err) {
  18. return
  19. }
  20. console.log(`Server is ready on port: ${port}`)
  21. })
  22. )
  23. // Handle graceful shutdown
  24. const gracefulShutDown = () => {
  25. server
  26. .shutdown()
  27. .then(() => {
  28. console.info("Gracefully stopping the server.")
  29. process.exit(0)
  30. })
  31. .catch((e) => {
  32. console.error("Error received when shutting down the server.", e)
  33. process.exit(1)
  34. })
  35. }
  36. process.on("SIGTERM", gracefulShutDown)
  37. process.on("SIGINT", gracefulShutDown)
  38. } catch (err) {
  39. console.error("Error starting server", err)
  40. process.exit(1)
  41. }
  42. }
  43. await start()
  44. })()