-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapp.js
62 lines (49 loc) · 1.73 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
const express = require('express');
const path = require('path');
const morgan = require('morgan');
const bodyParser = require('body-parser');
const fileUpload = require('express-fileupload');
const authorRouter = require('./routes/shelf').aRouter;
const bookRouter = require('./routes/shelf').bRouter;
const searchRouter = require('./routes/search');
const formRouter = require('./routes/forms');
const shelfDatabase = require('./db/shelfDb');
const app = express();
//routes
if (process.env.NODE_ENV == 'development') {
app.use(morgan('dev'));
}
// set the view engine to ejs
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));
//setting static folder to serve js and css files
app.use(express.static(`${__dirname}/views/static`));
bookRouter.use(express.static(`${__dirname}/views/static`));
authorRouter.use(express.static(`${__dirname}/views/static`));
formRouter.use(express.static(`${__dirname}/views/static`));
searchRouter.use(express.static(`${__dirname}/views/static`));
//home page route
app.get('/', async (req, res) => {
const db = new shelfDatabase();
try {
const allAuthors = await db.authorQuery();
const allBooks = await db.bookQuery();
return res.render('pages/index', {
allAuthors: allAuthors,
allBooks: allBooks,
disp: 0,
});
} catch (error) {}
});
//using 3rd party middleware body-parser
// app.use(bodyParser.urlencoded({ extended: false }));
// app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(fileUpload());
//binding routes to router instances
app.use('/authors', authorRouter);
app.use('/books', bookRouter);
app.use('/search', searchRouter);
app.use('/forms', formRouter);
module.exports = app;