const api = require(`./api/index.js`) const { wrapApiData } = require(`./util.js`) /** * 配置说明请参考文档: * https://hongqiye.com/doc/mockm/config/option.html * @type {import('mockm/@types/config').Config} */ module.exports = async (util) => { const joi = await util.tool.generate.initPackge(`joi`) return { plugin: [util.plugin.validate, util.plugin.apiDoc], guard: false, port: 8100, testPort: 8105, replayPort: 8101, watch: [`./api/`], proxy: { '/': `http://www.httpbin.org/`, // 后端接口主域 '/anything/intercept': [`origin`, `127.0.0.1`], // 修改接口返回的数据 }, api: { // 在其他文件里的 api ...api(util).api, 'post /api/login': util.side({ tags: [`admin`], summary: `根据用户名获取 token`, schema: { body: joi .object({ username: joi .string() .default(`李蕾`) .required() .description(`用户名`), }) .description(`用户信息`), }, async action(req, res) { const { username } = req.body res.json({ status: 200, message: `欢迎 ${username}, 登录成功`, token: `tokentoken`, }) }, }), // 当为基本数据类型时, 直接返回数据, 这个接口返回 {"msg":"ok"} '/api/1': { msg: `ok` }, // 也可以像 express 一样返回数据 '/api/2'(req, res) { res.send({ msg: `ok` }) }, // 一个只能使用 post 方法访问的接口 'post /api/3': { msg: `ok` }, // // 一个 websocket 接口, 会发送收到的消息 // 'ws /api/4' (ws, req) { // ws.on('message', (msg) => ws.send(msg)) // }, // 一个下载文件的接口 '/file'(req, res) { res.download(__filename, `mm.config.js`) }, // 获取动态的接口路径的参数 code '/status/:code'(req, res) { res.json({ statusCode: req.params.code }) }, // 使用 mockjs 生成数据 '/user'(req, res) { const json = util.libObj.mockjs.mock({ 'data|3-7': [ { userId: `@id`, userName: `@cname`, }, ], }) res.json(json) }, }, static: [], resHandleReplay: ({ req, res }) => wrapApiData({ code: 200, data: {} }), resHandleJsonApi: ({ req, res: { statusCode: code }, data }) => wrapApiData({ code, data }), } }