-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
64 lines (53 loc) · 1.98 KB
/
server.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
53
54
55
56
57
58
59
60
61
62
63
64
const express = require("express");
const dotenv = require("dotenv");
const morgan = require("morgan");
const mongoose = require("mongoose");
const catogeryRoute = require("./Routes/categoryRoute");
const userRoute = require("./Routes/userRoute");
const subCategoryRoute = require("./Routes/subCategoryRoute");
const brandRoute = require("./Routes/brandRoute");
const productRoute = require("./Routes/productRoute");
const AppError = require("./utils/AppError");
const globalError = require("./Middleware/errorMiddleware");
// Load environment variables
dotenv.config({ path: "./config.env" });
// Connect to the DB
mongoose
.connect(process.env.DB_URI)
.then(() => console.log("DB connection is successful"));
// .catch((err) => console.log("DB connection error: ", err));
// Express App
const app = express();
// Use morgan for logging in development mode
app.use(express.json());
if (process.env.NODE_ENV === "development") {
app.use(morgan("dev"));
console.log(`Mode -> ${process.env.NODE_ENV}`);
}
// Mounted Routes
app.use("/api/v1/categoreis", catogeryRoute);
app.use("/api/v1/users", userRoute);
app.use("/api/v1/subcategory", subCategoryRoute);
app.use("/api/v1/brands", brandRoute);
app.use("/api/v1/products", productRoute);
// Frist middleware then it send it to app error then global error handler
app.all("*", (req, res, next) => {
// This is for all routes that doesnt exists
next(new AppError(`can't find this ${req.originalUrl} on this server!`, 400));
});
// Global error handling middleware
app.use(globalError);
// Define PORT from environment variables
const PORT = process.env.PORT || 8001;
const server = app.listen(8000, () => {
console.log(`Hello From The Server side on port: ${PORT}`);
});
// Events ==> list ==> callback(err)
// Error outside express errors
process.on("uncaughtException", (err) => {
console.log(`uncaughtException error: ${err.name}|${err.message}`);
server.close(() => {
console.log("Shutting Down The Server....");
process.exit(1);
});
});