-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
55 lines (47 loc) · 1.35 KB
/
server.js
File metadata and controls
55 lines (47 loc) · 1.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
// dependencies!
const express = require("express");
const helmet = require("helmet");
const cors = require("cors");
const morgan = require("morgan");
const session = require("express-session");
const KnexSessionStore = require("connect-session-knex")(session);
// Routes for Router & DB config
const ApiRouter = require("./api/api-router.js");
const TripRouter = require("./trip/trip-router.js");
const knex = require("./data/db-config");
// start server!!
const server = express();
const sessionConfig = {
name: "secret",
secret: "keep it secret, keep it safe!",
saveUninitialized: false,
resave: false,
store: new KnexSessionStore({
knex,
createtable: true,
clearInterval: 1000 * 60 * 10, //10 minutes
sidfieldname: "sid",
tablename: "sessions"
}),
cookie: {
maxAge: 1000 * 60 * 10, //10 minutes
secure: false, // true in production
httpOnly: true //JS can't read this.
}
};
server.use(express.json());
server.use(helmet());
server.use(cors());
server.use(morgan("tiny"));
server.use(session(sessionConfig));
server.use("/api/user", ApiRouter);
server.use("/api/trip", TripRouter);
server.use("/", (req, res) => {
res.status(200).json("server is running!");
});
// error handling middleware
server.use((err, req, res, next) => {
console.log(err);
res.status(err.status).json(err.message);
});
module.exports = server;