123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- /*
- * @Author: weisheng
- * @Date: 2023-04-18 21:48:30
- * @LastEditTime: 2023-04-19 16:42:21
- * @LastEditors: weisheng
- * @Description:
- * @FilePath: \uniapp-vue3-fant-ts\koa-mock\app.js
- * 记得注释
- */
- const Koa = require('koa')
- const Router = require("koa-router");
- const app = new Koa()
- const json = require('koa-json')
- const onerror = require('koa-onerror')
- const bodyparser = require('koa-bodyparser')
- const logger = require('koa-logger')
- const glob = require("glob");
- const cors = require('@koa/cors');
- const fs = require("fs");
- // error handler
- onerror(app)
- // middlewares
- app.use(bodyparser({
- enableTypes:['json', 'form', 'text']
- }))
- app.use(json())
- app.use(logger())
- app.use(require('koa-static')(__dirname + '/public'))
- // logger
- app.use(async (ctx, next) => {
- const start = new Date()
- await next()
- const ms = new Date() - start
- console.log(`${ctx.method} ${ctx.url} - ${ms}ms`)
- })
- app.use(cors());
- const router = new Router({ prefix: "/api" });
- const routerMap = {}; // 存放 文件路径与路由 的 映射
- let content = '' // api/list 目录
- glob.sync('./api/**/*.json').forEach((item, i) => {
- let apiJsonPath = item && (item.replace(/\\/g, '/')).split("api")[1];
- let apiPath = apiJsonPath.replace(".json", "");
- content += apiPath + '\n'
- router.get('/list', (ctx, next)=> { // => /api/list/
- ctx.body = content
- })
- router.get(apiPath, (ctx, next) => {
- try {
- let jsonStr = fs.readFileSync(item).toString();
- ctx.body = {
- data: JSON.parse(jsonStr),
- code: 2000,
- success: true,
- msg:'成功了'
- };
- } catch (err) {
- ctx.body = {
- status: 404,
- type: "false"
- };
- ctx.throw("服务器错误: ", 500);
- }
- });
- router.post(apiPath, async (ctx, next) => {
- try {
- let jsonStr = fs.readFileSync(item).toString();
- await new Promise(resolve => setTimeout(resolve, 500));
- ctx.body = {
- data: JSON.parse(jsonStr),
- code: 2000,
- success: true,
- msg:'成功了'
- };
- } catch (err) {
- ctx.body = {
- status: 404,
- type: "false"
- };
- ctx.throw("服务器错误: ", 500);
- }
- });
- routerMap[apiJsonPath] = apiPath;
- })
- // routes
- app.use(router.routes()).use(router.allowedMethods());
- // app.use(index.routes(), index.allowedMethods())
- // app.use(users.routes(), users.allowedMethods())
- // error-handling
- app.on('error', (err, ctx) => {
- console.error('server error', err, ctx)
- });
- module.exports = app
|