index.ts 711 字节
Newer Older
P
Peter Pan 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
import {Request, Response} from 'express';

import IO from './builder/io';
import meta from './data/meta.json';
import path from 'path';

function notFound(res: Response) {
    res.status(404).send({
        status: 1,
        msg: 'Not found'
    });
}

export default async (req: Request, res: Response) => {
    const method = req.path;

    if (!method) {
        return notFound(res);
    }

    const data = meta.find(item =>
        IO.isSameUri(item, {uri: method, query: req.query as Record<string, string | string[]>})
    );

    if (!data) {
        return notFound(res);
    }

    res.sendFile(path.join(__dirname, 'data/data', data.uri, data.filename), {
        headers: data.headers
    });
};