首先说下需要,mockApi指的就是模仿后盾,咱们在前台收回的申请能够不禁后盾来接管而是由咱们本人编写的模仿后盾来承受来初步验证前台的正确性也防止了前后台进度不一导致的开发上的工夫延误。
在之前的我的项目中,咱们所应用的mockApi的原理是拦挡由前台向后盾发动的申请,以做到不让后盾进行解决而是由咱们的mockApi进行解决。
而咱们当初用的是另一种解决办法——通过配置后缀来扭转其申请的地址,并且express router
能够做到间接在前台接管url申请并进行自定义解决返回数据或是报错。
比方咱们能够设置为申请以api/结尾去申请后盾,以mockApi/结尾的申请去申请mockapi。
上面来说一下具体操作:
此mockapi相当于是一个独立的node我的项目,能够npm run tart
启动
主体代码:
import express, {Express, Request, Response} from 'express';import dotenv from 'dotenv';import bodyParser from 'body-parser';import md5 from 'md5';import {base64encode} from 'nodejs-base64';import {OaController} from './controller/oa.controller';const fs = require('fs');// 获取.env文件中的配置信息dotenv.config();// 初始化express, 端口,json 解析器const app: Express = express();const port = process.env.PORT;//咱们能够间接在此文件中书写接口并做出相应解决//辨认get办法,url:/api/hrm/resful/app.get('/', (req: Request, res: Response) => { res.send('Express + TypeScript Server');});//实体化rouerconst router = express.Router();//调用静态方法,解决对应的url并返回mock数据OaController.registerRouter(router);//设定url前缀app.use('/api/hrm/resful', router);app.listen(port, () => { console.log(`⚡️[server]: Server is running at http://localhost:${port}`);});
从这里咱们能够看出这个我的项目很简略,咱们能够通过.env文件来配制我的项目启动的端口从而失常启动我的项目;
.env:
PORT=8088
//静态方法,通过传入的express中的router来实现express解决url的性能import {Router, Request, Response} from 'express';export class OaController { private static instance: OaController; static registerRouter(router: Router): OaController { if (!OaController.instance) { OaController.instance = new OaController(); } router.post('/page, (res, req) => { OaController.instance.getHrmUserInfoWithPage(res, req); }); return OaController.instance; } //解决page申请,设定其响应 private page(res: Request, req: Response) { req.send({ code: 400, message: 'Internal Error' }) }}
由此咱们能够看出通过express构建的mockApi更贴近于理论后盾,咱们能够对其进行更多的操作,如依据传入的数据进行更为实在的错误处理而不是简略的进行断言。