mm.config.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. const api = require(`./api/index.js`)
  2. const { wrapApiData } = require(`./util.js`)
  3. /**
  4. * 配置说明请参考文档:
  5. * https://hongqiye.com/doc/mockm/config/option.html
  6. * @type {import('mockm/@types/config').Config}
  7. */
  8. module.exports = util => {
  9. return {
  10. guard: false,
  11. port: 8100,
  12. testPort: 8105,
  13. replayPort: 8101,
  14. watch: [`./api/`],
  15. proxy: {
  16. '/': `http://www.httpbin.org/`, // 后端接口主域
  17. '/anything/intercept': [`origin`, `127.0.0.1`], // 修改接口返回的数据
  18. },
  19. api: {
  20. // 在其他文件里的 api
  21. ...api(util).api,
  22. // 当为基本数据类型时, 直接返回数据, 这个接口返回 {"msg":"ok"}
  23. '/api/1': {msg: `ok`},
  24. // 也可以像 express 一样返回数据
  25. '/api/2' (req, res) {
  26. res.send({msg: `ok`})
  27. },
  28. // 一个只能使用 post 方法访问的接口
  29. 'post /api/3': {msg: `ok`},
  30. // // 一个 websocket 接口, 会发送收到的消息
  31. // 'ws /api/4' (ws, req) {
  32. // ws.on('message', (msg) => ws.send(msg))
  33. // },
  34. // 一个下载文件的接口
  35. '/file' (req, res) {
  36. res.download(__filename, `mm.config.js`)
  37. },
  38. // 获取动态的接口路径的参数 code
  39. '/status/:code' (req, res) {
  40. res.json({statusCode: req.params.code})
  41. },
  42. // 使用 mockjs 生成数据
  43. '/user' (req, res) {
  44. const json = util.libObj.mockjs.mock({
  45. 'data|3-7': [{
  46. userId: `@id`,
  47. userName: `@cname`,
  48. }],
  49. })
  50. res.json(json)
  51. },
  52. },
  53. static: [],
  54. resHandleReplay: ({req, res}) => wrapApiData({code: 200, data: {}}),
  55. resHandleJsonApi: ({req, res: {statusCode: code}, data}) => wrapApiData({code, data}),
  56. }
  57. }