-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
68 lines (50 loc) · 1.66 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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
const express = require("express");
const passport = require("passport");
const mongoose = require("mongoose");
const path = require("path");
const bodyParser = require("body-parser");
const cors = require("cors");
const config = require("./config/database");
const properties = require("./routes/properties");
const users = require("./routes/users");
const upload = require("./routes/upload");
const connectWithRetry = function () {
// when using with docker, at the time we up containers. Mongodb take few seconds to starting, during that time NodeJS server will try to connect MongoDB until success.
return mongoose.connect(
config.database,
{ useNewUrlParser: true, useFindAndModify: false },
(err) => {
if (err) {
console.error(
"Failed to connect to mongo on startup - retrying in 5 sec",
err
);
setTimeout(connectWithRetry, 5000);
}
}
);
};
connectWithRetry();
mongoose.connection.on("connected", () => {
console.log("Connected to Database:" + config.database);
});
mongoose.connection.on("error", (err) => {
console.log("Error with connection to DB:" + err);
});
mongoose.set("useFindAndModify", false);
mongoose.set("useCreateIndex", true);
const app = express();
app.use(cors());
app.set("views", __dirname + "/public");
app.set("view engine", "html");
app.use(bodyParser.json());
app.use(passport.initialize());
app.use(passport.session());
require("./config/passport")(passport);
app.use("/property", properties);
app.use("/uploads", upload);
app.use("/user", users);
const port = process.env.PORT || 8080;
app.listen(port, () => {
console.log("Server started on port: " + port);
});