app.js
2.52 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
var express = require("express");
const passport = require("passport");
var path = require("path");
var favicon = require("serve-favicon");
var logger = require("morgan");
const cookieSession = require("cookie-session");
var cookieParser = require("cookie-parser");
var bodyParser = require("body-parser");
const keys = require("./config/keys");
// var util = require('util');
var index = require("./routes/index");
var app = express();
/**
* Production version verification. It needs to build for React client.
*/
if (process.env.NODE_ENV === 'production') {
// Express will serve up production assets
// like our main.js file or main.css file!
// this guarantees that expressjs will look
// for specific files in specific directories
console.log ("NEXUS-We are in production...");
app.use(express.static('../client/build')); // if get request comes in from some route or some file or for anything for my application and we do not understant, then look in some file from this directory to see if some file that matches up the request
// Express will serve up the index.html file
// if it doesn't recognize the route.
// If something arrives from a route that we do not understand,
// look at the index.htm file in the client directory
const path = require('path');
app.get('*', (req, res) => {
console.log ("NEXUS-__dirname: " + __dirname);
res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'));
});
}
// view engine setup
app.set("views", path.join(__dirname, "views"));
app.set("view engine", "pug");
// uncomment after placing your favicon in /public
app.use(favicon(path.join(__dirname, "public", "favicon.ico")));
app.use(logger("dev"));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, "public")));
// intersept all incoming requests
app.use(
cookieSession({
maxAge: 30 * 24 * 60 * 60 * 1000, // 30 days
keys: [keys.cookieKey]
})
);
app.use(passport.initialize());
app.use(passport.session());
app.use("/", index);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error("Not Found");
err.status = 404;
next(err);
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get("env") === "development" ? err : {};
// render the error page
res.status(err.status || 500);
res.render("error");
});
module.exports = app;