共计 1707 个字符,预计需要花费 5 分钟才能阅读完成。
首先说下需要,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');
});
// 实体化 rouer
const 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 更贴近于理论后盾,咱们能够对其进行更多的操作,如依据传入的数据进行更为实在的错误处理而不是简略的进行断言。
正文完