-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
119 lines (97 loc) · 3.02 KB
/
index.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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
"use strict";
/* --------------------------------------
NODEJS EXPRESS | Stock Management API
----------------------------------------- */
const express = require("express");
const app = express();
/* ------------------------------------------------------- */
// Required Modules:
// envVariables to process.env:
require("dotenv").config();
const HOST = process.env?.HOST || "127.0.0.1";
const PORT = process.env?.PORT || 8000;
// asyncErrors to errorHandler:
require("express-async-errors");
/* ------------------------------------------------------- */
// Configrations:
// Connect to DB:
const { dbConnection } = require("./src/configs/dbConnection");
dbConnection();
/* ------------------------------------------------------- */
// Middlewares:
// Accept JSON:
app.use(express.json());
// CORS Middleware:
// https://expressjs.com/en/resources/middleware/cors.html
// npm i cors
// const cors = require("cors");
// Default using:
// app.use(cors())
// Default options:
// app.use(cors({
// "origin": "*",
// "methods": "GET,HEAD,PUT,PATCH,POST,DELETE",
// "preflightContinue": false,
// "optionsSuccessStatus": 204
// }))
/*
if (process.env.NODE_ENV=="development") {
const corsOptions = {}
} else {
const corsOptions = {}
}
app.use(cors(corsOptions))
*/
// app.use(cors({
// "origin": ["http://localhost:3000", "http://localhost:4173", "http://localhost:5173"], //"http://localhost:5173", // true // false // "*",
// // "origin": function (origin, callback) { },
// "methods": "GET, HEAD, PUT, PATCH, POST, DELETE",
// }))
/*
app.get('*', cors({ origin: 'onlyget.com' }))
app.all('*', cors({ origin: 'allmethods.com' }))
*/
app.use(require("cors")()); // Run with defaults.
// app.use(
// require("cors")({
// origin: [
// "http://localhost:3000",
// "http://localhost:4173",
// "http://localhost:5173",
// ],
// })
// );
// Call static uploadFile:
app.use("/upload", express.static("./upload"));
// Check Authentication:
app.use(require("./src/middlewares/authentication"));
// Run Logger:
// app.use(require("./src/middlewares/logger"));
// res.getModelList():
app.use(require("./src/middlewares/findSearchSortPage"));
/* ------------------------------------------------------- */
// Routes:
// HomePath:
app.all("/", (req, res) => {
res.send({
error: false,
message: "Welcome to Stock Management API",
documents: {
swagger: "/documents/swagger",
redoc: "/documents/redoc",
json: "/documents/json",
},
user: req.user,
});
});
// Routes:
app.use(require("./src/routes"));
/* ------------------------------------------------------- */
// errorHandler:
app.use(require("./src/middlewares/errorHandler"));
// RUN SERVER:
// app.listen(PORT, HOST, () => console.log(`http://${HOST}:${PORT}`));
app.listen(PORT, () => console.log(`http://${HOST}:${PORT}`));
/* ------------------------------------------------------- */
// Syncronization (must be in commentLine):
// require('./src/helpers/sync')() // !!! It clear database.