summaryrefslogtreecommitdiff
path: root/backend/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'backend/index.js')
-rw-r--r--backend/index.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/backend/index.js b/backend/index.js
new file mode 100644
index 0000000..ad245ba
--- /dev/null
+++ b/backend/index.js
@@ -0,0 +1,45 @@
+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, dbConnection } = 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 shutdown = async () => {
+ await server.shutdown();
+ await dbConnection.close();
+ };
+
+ process.on("SIGTERM", shutdown);
+ process.on("SIGINT", shutdown);
+ } catch (err) {
+ console.error("Error starting server", err);
+ process.exit(1);
+ }
+ }
+
+ await start();
+})();
+