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.
51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
const express = require("express")
|
|
const { GracefulShutdownServer } = require("medusa-core-utils")
|
|
|
|
const loaders = require("@medusajs/medusa/dist/loaders/index").default
|
|
|
|
;(async() => {
|
|
async function start() {
|
|
const app = express()
|
|
const directory = process.cwd()
|
|
|
|
try {
|
|
const { container } = await loaders({
|
|
directory,
|
|
expressApp: app
|
|
})
|
|
const configModule = container.resolve("configModule")
|
|
const port = process.env.PORT ?? configModule.projectConfig.port ?? 9000
|
|
|
|
const server = GracefulShutdownServer.create(
|
|
app.listen(port, (err) => {
|
|
if (err) {
|
|
return
|
|
}
|
|
console.log(`Server is ready on port: ${port}`)
|
|
})
|
|
)
|
|
|
|
// Handle graceful shutdown
|
|
const gracefulShutDown = () => {
|
|
server
|
|
.shutdown()
|
|
.then(() => {
|
|
console.info("Gracefully stopping the server.")
|
|
process.exit(0)
|
|
})
|
|
.catch((e) => {
|
|
console.error("Error received when shutting down the server.", e)
|
|
process.exit(1)
|
|
})
|
|
}
|
|
process.on("SIGTERM", gracefulShutDown)
|
|
process.on("SIGINT", gracefulShutDown)
|
|
} catch (err) {
|
|
console.error("Error starting server", err)
|
|
process.exit(1)
|
|
}
|
|
}
|
|
|
|
await start()
|
|
})()
|