commit | author | age
|
f3b017
|
1 |
const createError = require('http-errors'); |
RS |
2 |
const express = require('express'); |
|
3 |
const pretty = require('express-prettify'); |
|
4 |
const path = require('path'); |
|
5 |
const cookieParser = require('cookie-parser'); |
|
6 |
const logger = require('morgan'); |
|
7 |
|
|
8 |
const indexRouter = require('./routes/index'); |
|
9 |
const booksRouter = require('./routes/books'); |
|
10 |
const authorsRouter = require('./routes/authors'); |
|
11 |
|
|
12 |
const app = express(); |
|
13 |
|
|
14 |
// view engine setup |
|
15 |
app.set('views', path.join(__dirname, 'views')); |
|
16 |
app.set('view engine', 'hbs'); |
|
17 |
|
|
18 |
app.use(logger('dev')); |
|
19 |
app.use(express.json()); |
|
20 |
app.use(express.urlencoded({ extended: false })); |
|
21 |
app.use(cookieParser()); |
|
22 |
app.use(express.static(path.join(__dirname, 'public'))); |
|
23 |
app.use(pretty({ query: 'pretty' })); |
|
24 |
|
|
25 |
app.use('/', indexRouter); |
|
26 |
app.use('/books', booksRouter); |
|
27 |
app.use('/authors', authorsRouter); |
|
28 |
|
|
29 |
// catch 404 and forward to error handler |
|
30 |
app.use((req, res, next) => { |
|
31 |
next(createError(404)); |
|
32 |
}); |
|
33 |
|
|
34 |
// error handler |
|
35 |
app.use((err, req, res) => { |
|
36 |
// set locals, only providing error in development |
|
37 |
res.locals.message = err.message; |
|
38 |
res.locals.error = req.app.get('env') === 'development' ? err : {}; |
|
39 |
|
|
40 |
// render the error page |
|
41 |
res.status(err.status || 500); |
|
42 |
res.render('error'); |
|
43 |
}); |
|
44 |
|
|
45 |
module.exports = app; |