operation.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. let express = require('express');
  2. let config = require("./config/config.js");
  3. config.setupDb(process.env.NODE_ENV);
  4. let dbm = require("./config/db/db_manager");
  5. let path = require('path');
  6. let session = require('express-session');
  7. let DBStore = require('connect-mongo')(session);
  8. let fileUtils = require("./modules/common/fileUtils");
  9. let partials = require("express-partials");
  10. let URL = require('url');
  11. let fs = require('fs');
  12. let app = express();
  13. let _rootDir = __dirname;
  14. dbm.connect();
  15. //引入报表模块
  16. fileUtils.getGlobbedFiles('./modules/reports/models/*.js').forEach(function(modelPath) {
  17. require(path.resolve(modelPath));
  18. });
  19. //config.setupCache();
  20. let cfgCacheUtil = require("./config/cacheCfg");
  21. cfgCacheUtil.setupDftCache();
  22. app.use(express.static(_rootDir));
  23. app.set('views', path.join(__dirname, 'web'));
  24. app.engine('.html', require('ejs').__express);
  25. app.set('view engine', 'html');
  26. app.set('view options', {
  27. // defaultLayout: 'users/views/layout/layout'
  28. defaultLayout: false
  29. });
  30. app.use(partials());
  31. let bodyParser = require('body-parser');
  32. app.use(bodyParser.urlencoded({extended: true}));
  33. app.use(bodyParser.json());
  34. app.use(session({
  35. name: 'usersSession',
  36. secret: 'session users secret',
  37. cookie: {maxAge: 1000*60*30},
  38. resave: false,
  39. rolling: true,
  40. saveUninitialized: true
  41. //*
  42. ,store: new DBStore({
  43. url: 'mongodb://' + config.current.server + ':' + config.current.port + '/usersManagesOpr'
  44. })
  45. //*/
  46. }));
  47. app.use(function (req, res, next) {
  48. let referer = '';
  49. if (!/^\/login/.test(req.originalUrl) && !req.session.managerData) {
  50. if (/\/api/.test(req.originalUrl)) {
  51. referer = URL.parse(req.headers.referer);
  52. return res.redirect('/login' + '?referer=' + referer.path);
  53. } else {
  54. return res.redirect("/login" + '?referer=' + req.originalUrl);
  55. }
  56. }
  57. next();
  58. });
  59. //加载路由文件
  60. fileUtils.getGlobbedFiles('./modules/**/routes/*.js').forEach(function(modelPath) {
  61. require(path.resolve(modelPath))(app);
  62. });
  63. app.use(function(req, res, next) {
  64. res.status(404).send('404 Error');
  65. });
  66. app.use(function(err, req, res, next) {
  67. console.error(err.stack);
  68. res.status(500).send('500 Error');
  69. });
  70. //设置Date Format函数
  71. fs.readFile(__dirname + '/public/web/date_util.js', 'utf8', 'r', function (err, data) {
  72. eval(data);
  73. // let dt = new Date();
  74. // console.log(dt.Format('yyyy-M-dd'));
  75. // console.log(dt.Format('yyyy 年 M 月 dd 日'));
  76. // console.log(dt.Format('yyyy 年 M 月 20 日'));
  77. });
  78. app.listen(6080, function(){
  79. console.log("server started!");
  80. });