-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
122 lines (103 loc) · 3.35 KB
/
app.js
File metadata and controls
122 lines (103 loc) · 3.35 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
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
120
121
122
// env variables
require("dotenv").config();
let appInsights = require("applicationinsights");
appInsights
.setup(process.env.APPINSIGHTS_INSTRUMENTATIONKEY)
.setAutoDependencyCorrelation(true)
.setAutoCollectRequests(true)
.setAutoCollectPerformance(true, true)
.setAutoCollectExceptions(true)
.setAutoCollectDependencies(true)
.setAutoCollectConsole(true)
.setUseDiskRetryCaching(true)
.setSendLiveMetrics(false)
.setAutoDependencyCorrelation(true)
.setDistributedTracingMode(appInsights.DistributedTracingModes.AI)
.start();
module.exports = {
appInsights: appInsights,
}
var express = require("express");
var bodyParser = require("body-parser");
var path = require("path");
var expressValidator = require("express-validator");
var cookieParser = require("cookie-parser");
var session = require("express-session");
var passport = require("passport");
var flash = require("connect-flash");
var app = express();
//server
var server = require("http").createServer(app);
var blogRouter = require("./routes/blogRoutes.js");
var singleRouter = require("./routes/singleRoutes.js");
var authRouter = require("./routes/authRoutes.js");
var ccRouter = require("./routes/codingChallenges.js");
//view engine
app.set("view engine", "ejs");
app.set("views", path.join(__dirname, "views"));
//Body Parser Middleware
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
//https://stackoverflow.com/questions/40381401/when-to-use-saveuninitialized-and-resave-in-express-session
app.use(
session({
secret: "Auth",
resave: false,
saveUninitialized: true,
})
);
//https://stackoverflow.com/questions/40381401/when-to-use-saveuninitialized-and-resave-in-express-session
//'flash' is used to flash error message in login page
app.use(flash());
//fetch passport.js and pass in 'app'
require("./config/passport.js")(app);
require("./config/strategies/local.strategy")(passport);
//Set static path
app.use("/static", express.static(path.join(__dirname, "public")));
// Mongoose ODM...
var mongoose = require("mongoose");
//connect to mongoDB
mongoose.Promise = global.Promise;
mongoose.connect(process.env.MONGODB_URI || process.env.MONGO_CRED, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
//import mongodb controller to insert, search, delete article
var blogCtrl = require("./controller/blog.server.controller.js");
//Global Vars
app.use(function (req, res, next) {
res.locals.errors = null;
res.locals.data = null;
res.locals.title = null;
res.locals.articles = null;
res.locals.article = null;
res.locals.typeOfBlog = null;
res.locals.entryAdded = null;
res.locals.message = null;
res.locals.user = null;
next();
});
//routes
app.use("/", blogRouter);
app.use("/single", singleRouter);
app.use("/auth", authRouter);
app.use("/cc", ccRouter);
app.use(function (req, res, next) {
res.render("error", {
error: "The page you are requesting doesnot exist",
title: "Oops! Something went wrong",
user: req.user,
});
});
app.set("port", process.env.PORT || 3000);
//app.set('port_ip', (process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1'));
let start = Date.now();
server.listen(app.get("port"), function () {
console.log("running... in port 3000");
let duration = Date.now() - start;
appInsights.defaultClient.trackMetric({
name: "server startup time",
value: duration,
});
});