You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.4 KiB

  1. var createError = require('http-errors');
  2. var express = require('express');
  3. var path = require('path');
  4. var cookieParser = require('cookie-parser');
  5. var fs = require('fs');
  6. var logger = require('morgan');
  7. var fileUpload = require('express-fileupload');
  8. var indexRouter = require('./routes/index');
  9. var usersRouter = require('./routes/users');
  10. var blogRouter = require('./routes/blog');
  11. var app = express();
  12. //Log to File
  13. var accessLogStream = fs.createWriteStream(path.join(__dirname, 'access.log'), { flags: 'a' });
  14. // view engine setup
  15. app.set('views', path.join(__dirname, 'views'));
  16. app.set('view engine', 'ejs');
  17. app.use(fileUpload({
  18. createParentPath: true
  19. }));
  20. app.use(logger('dev'));
  21. app.use(logger('combined', { stream: accessLogStream }));
  22. app.use(express.json());
  23. app.use(express.urlencoded({ extended: false }));
  24. app.use(cookieParser());
  25. app.use(express.static(path.join(__dirname, 'public')));
  26. app.use(express.static('uploads'));
  27. app.use('/', indexRouter);
  28. app.use('/users', usersRouter);
  29. app.use('/blog', blogRouter);
  30. // catch 404 and forward to error handler
  31. app.use(function (req, res, next) {
  32. next(createError(404));
  33. });
  34. // error handler
  35. app.use(function (err, req, res, next) {
  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. // render the error page
  40. res.status(err.status || 500);
  41. res.render('error');
  42. });
  43. module.exports = app;