From a4ddc8b50c6d916516ee376464972230abdab1b2 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Sun, 3 Oct 2021 20:28:22 +0200 Subject: [PATCH] chore: Setup dotenv for the express application --- packages/backend/.env-example | 1 + packages/backend/package.json | 1 + packages/backend/src/app.ts | 11 ++++++----- packages/backend/src/config/app-env.ts | 12 ++++++++++++ yarn.lock | 5 +++++ 5 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 packages/backend/.env-example create mode 100644 packages/backend/src/config/app-env.ts diff --git a/packages/backend/.env-example b/packages/backend/.env-example new file mode 100644 index 00000000..2fc80e3a --- /dev/null +++ b/packages/backend/.env-example @@ -0,0 +1 @@ +PORT=3000 diff --git a/packages/backend/package.json b/packages/backend/package.json index 58d72a78..3b891545 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -10,6 +10,7 @@ }, "dependencies": { "debug": "~2.6.9", + "dotenv": "^10.0.0", "express": "~4.16.1", "http-errors": "~1.6.3", "morgan": "~1.9.1" diff --git a/packages/backend/src/app.ts b/packages/backend/src/app.ts index c0fea44f..80a822d7 100644 --- a/packages/backend/src/app.ts +++ b/packages/backend/src/app.ts @@ -1,3 +1,4 @@ +import appEnv from './config/app-env' import createError from 'http-errors'; import express, { Request, Response, NextFunction } from 'express'; import logger from 'morgan'; @@ -5,7 +6,7 @@ import logger from 'morgan'; import indexRouter from './routes/index'; const app = express(); -const port = process.env.PORT || '3000'; +const port = appEnv.port; app.use(logger('dev')); app.use(express.json()); @@ -13,10 +14,6 @@ app.use(express.urlencoded({ extended: false })); app.use('/', indexRouter); -app.listen(port, () => { - return console.log(`Server is listening on ${port}`) -}) - // catch 404 and forward to error handler app.use(function(req: Request, res: Response, next: NextFunction) { next(createError(404)); @@ -32,3 +29,7 @@ app.use(function(err: any, req: Request, res: Response, _next: NextFunction) { res.status(err.status || 500); res.render('error'); }); + +app.listen(port, () => { + return console.log(`Server is listening on ${port}`) +}) diff --git a/packages/backend/src/config/app-env.ts b/packages/backend/src/config/app-env.ts new file mode 100644 index 00000000..9cc56f7a --- /dev/null +++ b/packages/backend/src/config/app-env.ts @@ -0,0 +1,12 @@ +import * as dotenv from 'dotenv'; +dotenv.config(); + +type AppEnv = { + port: string, +} + +const appEnv: AppEnv = { + port: process.env.PORT || '3000', +} + +export default appEnv; diff --git a/yarn.lock b/yarn.lock index 38226a05..9fb81d4a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5772,6 +5772,11 @@ dotenv@8.2.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== +dotenv@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" + integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== + duplexer3@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"