-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
69 lines (54 loc) · 2.25 KB
/
server.js
File metadata and controls
69 lines (54 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
const express = require('express')
const cors = require('cors')
require('dotenv').config()
const mongoose = require('mongoose')
mongoose.set('strictQuery', true);
const db = mongoose.connection
// const { MONGODB_USER, MONGODB_PASSWORD, MONGODB_IP, MONGODB_PORT } = require('./config/config')
const Messages = require('./models/Message')
const messageSeedData = require('./utilities/messageSeedData')
//Environment Variables
const PORT = process.env.PORT || 3001;
const MONGODB_URI = process.env.MONGODB_URI || 'mongodb://${MONGODB_USER}:${MONGODB_PASSWORD}@${MONGODB_IP}:${MONGODB_PORT}/?authSource=admin';
const app = express();
const connectWithRetry = () => {
mongoose.connect(MONGODB_URI, {
useNewUrlParser: true,
useUnifiedTopology: true
})
.then(() => console.log('MongoDB is connected'))
.catch(error => {
console.log(error)
console.log('...retrying MongoDB connection...')
setTimeout(connectWithRetry, 5000)
})
}
//Connection to MongoDB
connectWithRetry();
db.on('error', (error) => console.log(error.message + ' is MongoDB running?'));
db.on('disconnected', () => console.log('mongo disconnected'));
// Middleware
app.use(express.urlencoded({ extended: false }))// extended: false - does not allow nested objects in query strings
app.use(express.json()); //use .json(), not .urlencoded()
app.use(express.static('public')) // we need to tell express to use the public directory for static files... this way our app will find index.html as the route of the application! We can then attach React to that file!
app.use(cors({
origin: process.env.CORS_ORIGIN
}));
// Routes
const messagesController = require('./controllers/messagesController.js');
// const messageRouter = require('./routes/messageRoutes')
const commentsController = require('./controllers/commentsController.js');
const userController = require('./controllers/userController.js');
app.use('/messages', messagesController);
// app.use('/api/v1/messages', messageRouter);
app.use('/comments', commentsController);
app.use('/users', userController);
// Seeding the db
app.get('/seed', async (req, res) => {
await Messages.deleteMany({});
await Messages.insertMany(messageSeedData);
res.send('done!');
});
app.listen(PORT, () => {
console.log('Server active on port: ', PORT)
})