index.js 746 字节
Newer Older
J
Jason Park 已提交
1 2
import express from 'express';
import { AuthorizationError, NotFoundError, PermissionError } from '/common/error';
J
Jason Park 已提交
3
import auth from './auth';
4 5
import directory from './directory';
import wiki from './wiki';
J
Jason Park 已提交
6 7 8

const router = new express.Router();

J
Jason Park 已提交
9
router.use('/auth', auth);
10 11
router.use('/directory', directory);
router.use('/wiki', wiki);
J
Jason Park 已提交
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
router.use((req, res, next) => next(new NotFoundError()));
router.use((err, req, res, next) => {
  const statusMap = [
    [AuthorizationError, 401],
    [PermissionError, 403],
    [NotFoundError, 404],
    [Error, 500],
  ];
  const [, status] = statusMap.find(([Error]) => err instanceof Error);
  res.status(status);
  res.json({
    status,
    err,
  });
  console.error(err);
});

export default router;