admin.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. const router = require('express').Router();
  2. const api_admin_router = require('./admin_api');
  3. const checkLogin = require('../middleware/checkLogin');
  4. const field = require('../maps/field')
  5. const c_user = require("../controller/account");
  6. const code = require("../maps/rcodeMap");
  7. const progress = require("../maps/progress");
  8. const paramsCheck = require("../middleware/paramsCheck");
  9. // 管理员主页
  10. router.get('/',
  11. checkLogin(field.adminType,'view'),
  12. function(req, res, next) {
  13. res.send('respond with a resource');
  14. });
  15. // 管理员登陆页
  16. router.get('/login',
  17. function(req, res, next) {
  18. res.send('respond with a resource');
  19. });
  20. // 登陆接口
  21. router.post('/login',
  22. paramsCheck({
  23. post:{
  24. account:{required:true},
  25. passwd:{required:true}
  26. }}),
  27. async (req,res)=>{
  28. try{
  29. let results = await c_user.login(field.adminType,req.body.account,req.body.passwd);
  30. req.session[progress.adminSessionField] = results;
  31. res.json({
  32. rcode: code.ok,
  33. data: results
  34. })
  35. }catch (error) {
  36. if (error.rcode !== code.customError) {
  37. console.log(error);
  38. console.log.error(`login error ${error.message||error.msg}`);
  39. }
  40. res.json({
  41. rcode: error.rcode || code.serverError,
  42. msg: error.msg || error.message
  43. });
  44. }
  45. })
  46. // 退出登陆
  47. router.post('/logout',
  48. async (req,res)=>{
  49. try{
  50. req.session[progress.adminSessionField] = null;
  51. res.json({
  52. rcode: code.ok,
  53. })
  54. }catch (error) {
  55. if (error.rcode !== code.customError) {
  56. console.log(error);
  57. console.log.error(`logout error ${error.message||error.msg}`);
  58. }
  59. res.json({
  60. rcode: error.rcode || code.serverError,
  61. msg: error.msg || error.message
  62. });
  63. }
  64. });
  65. // 后台相关接口
  66. router.use('/api',checkLogin(field.adminType),api_admin_router)
  67. module.exports = router;