Advertisement
Guest User

Untitled

a guest
Jul 25th, 2017
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const express = require('express');
  2. const path = require('path');
  3. const fs = require('fs');
  4. const http = require('http');
  5. const favicon = require('serve-favicon');
  6. const logger = require('morgan');
  7. const cookieParser = require('cookie-parser');
  8. const bodyParser = require('body-parser');
  9. const app = express();
  10. const server = http.createServer(app);
  11. const session = require('express-session');
  12. const MongoStore = require('connect-mongo')(session);
  13.  
  14. const jsonfile = require('jsonfile');
  15. const fileVersionControl = 'version.json';
  16. const currentStatic = require('./gulp/config').root;
  17. const config = require('./config');
  18. // получаем абсолютный путь к папке upload, в которую будут загружаться картинки
  19. // проектов
  20. const uploadDir = path.join(__dirname, config.upload);
  21.  
  22. //подключаем модули
  23. const mongoose = require('mongoose');
  24. mongoose.Promise = global.Promise;
  25. mongoose.connect('mongodb://admin:webadvpass@ds161022.mlab.com:61022/portfolio')
  26.     .catch(e => {
  27.         console.error(e);
  28.         throw e;
  29.     });
  30. // mongoose.connect(`mongodb://${config.db.host}:${config.db.port}/${config.db.name}`, {
  31. //         user: config.db.user,
  32. //         pass: config.db.password
  33. //     })
  34. //     .catch(e => {
  35. //         console.error(e);
  36. //         throw e;
  37. //     });
  38.  
  39. require('./models/db-close');
  40. //подключаем модели(сущности, описывающие коллекции базы данных)
  41. require('./models/blog');
  42. require('./models/works');
  43. require('./models/skills');
  44. require('./models/user');
  45.  
  46.  
  47. // view engine setup
  48. app.set('views', path.join(__dirname, 'views'));
  49. app.set('view engine', 'pug');
  50.  
  51. app.use(logger('dev'));
  52. app.use(bodyParser.json());
  53. app.use(bodyParser.urlencoded({ extended: false }));
  54. app.use(cookieParser());
  55. app.use(session({
  56.     secret: 'secret',
  57.     key: 'keys',
  58.     cookie: {
  59.         path: '/',
  60.         httpOnly: true,
  61.         maxAge: null
  62.     },
  63.     saveUninitialized: false,
  64.     resave: false,
  65.     store: new MongoStore({ mongooseConnection: mongoose.connection })
  66. }));
  67.  
  68. app.use(express.static(path.join(__dirname, currentStatic)));
  69.  
  70. //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
  71.  
  72. app.use('/', require('./routes/index'));
  73. app.use('/about', require('./routes/about'));
  74. app.use('/works', require('./routes/works'));
  75. app.use('/blog', require('./routes/blog'));
  76. app.use('/admin', require('./routes/admin'));
  77.  
  78. // 404 catch-all handler (middleware)
  79. app.use(function(req, res, next) {
  80.     res.status(404);
  81.     res.render('404');
  82. });
  83.  
  84. // 500 error handler (middleware)
  85. app.use(function(err, req, res, next) {
  86.     console.error(err.stack);
  87.     res.status(500);
  88.     res.render('500');
  89. });
  90.  
  91. // Локальный хост
  92. //server.listen(3000, 'localhost');
  93.  
  94. // На сервер
  95. server.listen(3000, '0.0.0.0');
  96. server.on('listening', function() {
  97.     jsonfile
  98.         .readFile(fileVersionControl, function(err, obj) {
  99.             if (err) {
  100.                 console.log('Данные для хеширования ресурсов из version.json не прочитаны');
  101.                 console.log('Сервер остановлен');
  102.                 process.exit(1);
  103.             } else {
  104.                 app.locals.settings = {
  105.                     suffix: obj.suffix,
  106.                     version: obj.version
  107.                 };
  108.                 console.log('Данные для хеширования ресурсов из version.json прочитаны');
  109.  
  110.                 //если такой папки нет - создаем ее
  111.                 if (!fs.existsSync(uploadDir)) {
  112.                     fs.mkdirSync(uploadDir);
  113.                 }
  114.  
  115.                 console.log('Express server started on port %s at %s', server.address().port, server.address().address);
  116.             }
  117.         });
  118. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement