Skip to content

Commit 87f825a

Browse files
committed
setting up for production
1 parent 7841bd3 commit 87f825a

File tree

3 files changed

+230
-8
lines changed

3 files changed

+230
-8
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
node_modules/
33

44
# important keys
5-
keys.js
5+
#keys.js
6+
nodemon.json
67

78
# ignore all .txt files
89
*.txt

23. Adding Payments/app.js

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
const path = require('path');
22
const crypto = require('crypto');
3+
const fs = require('fs');
34

45
const express = require('express');
56
const bodyParser = require('body-parser');
@@ -9,8 +10,11 @@ const MongoDBStore = require('connect-mongodb-session')(session);
910
const csrf = require('csurf');
1011
const flash = require('connect-flash');
1112
const multer = require('multer');
13+
const helmet = require('helmet');
14+
const compression = require('compression');
15+
const morgan = require('morgan');
1216

13-
const envKeys = require('./keys');
17+
const keys = require('./keys');
1418

1519
const errorsController = require('./controllers/errors.js');
1620

@@ -22,11 +26,9 @@ const authRoutes = require('./routes/auth');
2226
// Models
2327
const User = require('./models/user');
2428

25-
const PORT = 3000;
26-
2729
const app = express();
2830
const store = new MongoDBStore({
29-
uri: envKeys.MONGODB_URI,
31+
uri: keys.MONGODB_ATLAS_URI,
3032
collection: 'sessions'
3133
});
3234
const csrfProtection = csrf();
@@ -51,16 +53,22 @@ const fileFilter = (req, file, callback) => {
5153
}
5254
};
5355

56+
const accessLogStream = fs.createWriteStream(path.join(__dirname, 'access.log'), { flags: 'a' });
57+
5458
app.set('view engine', 'ejs');
5559
app.set('views', 'views');
5660

61+
app.use(helmet());
62+
app.use(compression());
63+
app.use(morgan("combined", { stream: accessLogStream }));
64+
5765
app.use(bodyParser.urlencoded({extended: false}));
5866
app.use(multer({ storage: fileStorage, fileFilter: fileFilter }).single('image'));
5967
app.use(express.static(path.join(__dirname, 'public')));
6068
app.use('/images', express.static(path.join(__dirname, 'images')));
6169

6270
app.use(session({
63-
secret: envKeys.SESSION_SECRET_KEY,
71+
secret: keys.SESSION_SECRET_KEY,
6472
resave: false,
6573
saveUninitialized: false,
6674
store: store
@@ -102,9 +110,19 @@ app.use((error, req, res, next) => {
102110
res.status(500).render('500', { pageTitle: 'Error!', path: '/500' });
103111
});
104112

113+
const MONGOOSE_CONNECT_OPTIONS = {
114+
useNewUrlParser: true,
115+
useUnifiedTopology: true,
116+
useFindAndModify: false,
117+
useCreateIndex: true
118+
};
119+
105120
mongoose
106-
.connect(envKeys.MONGODB_URI, { useNewUrlParser: true, useUnifiedTopology: true })
121+
.connect(keys.MONGODB_ATLAS_URI, MONGOOSE_CONNECT_OPTIONS)
107122
.then(result => {
108-
app.listen(envKeys.PORT);
123+
if(!result) {
124+
throw new Error('MongoDB Atlas server not working');
125+
}
126+
app.listen(process.env.PORT || 3000);
109127
})
110128
.catch(err => console.log(err));

0 commit comments

Comments
 (0)