server.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. let express = require('express');
  2. let config = require("./config/config.js");
  3. let mongoose = require('mongoose');
  4. config.setToLocalDb();
  5. // config.setToQaDb();
  6. //config.setupCache();
  7. let cfgCacheUtil = require("./config/cacheCfg");
  8. cfgCacheUtil.setupDftCache();
  9. let path = require('path');
  10. let session = require('express-session');
  11. let DBStore = require('connect-mongo')(session);
  12. mongoose.connect('mongodb://' + config.current.server + ':' + config.current.port + '/scConstruct');
  13. let URL = require('url')
  14. let app = express();
  15. let _rootDir = __dirname;
  16. app.use(express.static(_rootDir));
  17. app.set('views', path.join(__dirname, 'web'));
  18. app.engine('.html', require('ejs').__express);
  19. app.set('view engine', 'html');
  20. let bodyParser = require('body-parser');
  21. app.use(bodyParser.urlencoded({extended: false}));
  22. app.use(bodyParser.json());
  23. app.use(session({
  24. name: 'usersSession',
  25. secret: 'session users secret',
  26. cookie: {maxAge: 1000*60*30},
  27. resave: false,
  28. saveUninitialized: true
  29. //*
  30. ,store: new DBStore({
  31. url: 'mongodb://' + config.current.server + ':' + config.current.port + '/usersManages'
  32. })
  33. //*/
  34. }));
  35. // 登录状态全局判断
  36. app.use(function (req, res, next) {
  37. let url = req.originalUrl;
  38. // @todo 上一个页面跳转
  39. let referer = '';
  40. if (/^\/login/.test(url)) {
  41. // 如果是登录页面则忽略判断数据
  42. next();
  43. } else {
  44. try {
  45. // 判断session
  46. let sessionUser = req.session.sessionUser;
  47. if (!sessionUser) {
  48. throw 'session error';
  49. }
  50. res.locals.sessionUser = sessionUser;
  51. } catch (error) {
  52. return res.redirect('/login');
  53. }
  54. next();
  55. }
  56. });
  57. // 用户相关路由区域
  58. app.use('/', require("./modules/users/routes/login_route"));
  59. app.use('/boot', require("./modules/users/routes/boot_route"));
  60. app.use('/user', require("./modules/users/routes/user_route"));
  61. app.use('/feeRates', require('./modules/fee_rates/routes/fee_rates_route'));
  62. app.get('/template/bills', function (req, res) {
  63. let checkAdmin = function (userAccount) {
  64. return true;
  65. }
  66. if (checkAdmin(req.session.userAccount)) {
  67. res.render('maintain/templates/html/bills.html',
  68. {userAccount: req.session.userAccount,
  69. userID: req.session.userID});
  70. } else {
  71. res.redirect('/pm');
  72. }
  73. });
  74. app.use('/template/bills/api', function (req, res, next) {
  75. let checkAdmin = function (userAccount) {
  76. return true;
  77. }
  78. if (checkAdmin(req.session.sessionUser)) {
  79. next();
  80. } else {
  81. res.json({error: 1, message: '对不起,您无权限操作清单模板。', data: null});
  82. }
  83. });
  84. let billsTemplateRouter = require('./modules/templates/routes/bills_template_router');
  85. app.use('/template/bills/api', billsTemplateRouter);
  86. app.get('/pm', function(req, res){
  87. res.render('building_saas/pm/html/project-management.html',
  88. {userAccount: req.session.userAccount,
  89. userID: req.session.sessionUser.ssoId});
  90. });
  91. let pmRouter = require('./modules/pm/routes/pm_route');
  92. app.use('/pm/api', pmRouter);
  93. app.get('/main', function(req, res) {
  94. let pm = require('./modules/pm/controllers/pm_controller');
  95. pm.checkProjectRight(req.session.sessionUser.ssoId, req.query.project, function (hasRight) {
  96. if (hasRight) {
  97. res.render('building_saas/main/html/main.html',
  98. {
  99. userAccount: req.session.userAccount,
  100. userID: req.session.sessionUser.ssoId
  101. });
  102. } else {
  103. res.redirect('/pm');
  104. }
  105. });
  106. });
  107. let project_Router = require('./modules/main/routes/project_route');
  108. let bills_Router = require('./modules/main/routes/bills_route');
  109. let ration_Router = require('./modules/main/routes/ration_route');
  110. let GLJ_Router = require('./modules/main/routes/GLJ_route');
  111. app.use('/project', project_Router);
  112. app.use('/bills', bills_Router);
  113. app.use('/ration', ration_Router);
  114. app.use('/glj', GLJ_Router);
  115. //app.use(express.static(_rootDir+"/web"));
  116. //app.use(express.static(_rootDir+"/lib"));
  117. //let rations_Router = require("./modules/rationLibEditor/routes/rationLibEditor_route");
  118. //app.use("/rationLibEditor",rations_Router);
  119. app.get("/stdBillsmain", function(req, res){
  120. if(!req.session.sessionUser){
  121. res.redirect('/login');
  122. }
  123. else {
  124. res.render("maintain/bills_lib/html/main.html",
  125. {userAccount: req.session.userAccount,
  126. userID: req.session.sessionUser.ssoId});
  127. }
  128. });
  129. app.get("/stdBills", function(req, res){
  130. res.render("maintain/bills_lib/html/qingdan.html");
  131. });
  132. app.get('/stdJobs', function(req, res){
  133. res.render('maintain/bills_lib/html/neirong.html');
  134. });
  135. app.get('/stdItems', function(req, res){
  136. res.render('maintain/bills_lib/html/tezheng.html');
  137. });
  138. let billsLibRouter = require("./modules/bills_lib/routes/bills_lib_routes");
  139. app.use("/stdBillsEditor", billsLibRouter);
  140. let rationRouter = require("./modules/ration_repository/routes/ration_front_end_routes");
  141. app.use("/rationRepository/api", rationRouter);
  142. let rpt_Router = require("./modules/reports/routes/report_router");
  143. app.use("/report_api", rpt_Router);
  144. let rptTpl_Router = require("./modules/reports/routes/rpt_tpl_router_fe");
  145. app.use("/report_tpl_api", rptTpl_Router);
  146. //-----------------
  147. app.use(function(req, res, next) {
  148. res.status(404).send('404 Error');
  149. });
  150. app.use(function(err, req, res, next) {
  151. console.error(err.stack);
  152. res.status(500).send('500 Error');
  153. });
  154. app.listen(6060, function(){
  155. console.log('server started!');
  156. });