-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
53 lines (42 loc) · 1.35 KB
/
app.js
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
// libraries
const express = require('express')
const dotenv = require('dotenv').config();
const mongoose = require('mongoose');
// Files
const logMiddleware = require('./middleware/logMiddleware');
const errorMiddleware = require('./middleware/errorMiddleware');
const weatherRoutes = require('./routes/weatherRouter');
// imports
const app = express();
// environmental variables
const PORT = process.env.PORT;
const MONGO_DB = process.env.MONGO_DB_URL;
// middleware
app.use(express.json()); // for JSON Parsing
app.use(logMiddleware); // for logging
// routes
app.use("/weather",weatherRoutes);
// MongoDB connection
mongoose.connect(MONGO_DB)
.then(() => {
console.log('MongoDB successfully connected.');
}).catch((err) => {
console.error('Error connecting to MongoDB: ', err.message);
});
// Error handling middleware - global
app.use(errorMiddleware);
// server
app.listen(PORT, () => {
const serverMessage = `[${new Date().toISOString()}] INFO: Server started on PORT: ${PORT}\n`;
console.log(serverMessage.trim());
const fs = require('fs');
const path = require('path');
const filePath = path.join(__dirname, './logs/log.txt');
fs.appendFile(filePath, serverMessage, (err) => {
if(err)
{
app.use(errorMiddleware)
console.error(`ERROR: Failed to write to log File`)
}
})
})