mock平台

server.js 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /**
  2. * Created by gxl.gao on 2017/10/24.
  3. */
  4. const yapi = require('yapi.js');
  5. const mongoose = require('mongoose');
  6. const controller = require('./controller');
  7. const statisModel = require('./statisMockModel.js');
  8. const commons = require('./util.js');
  9. module.exports = function() {
  10. yapi.connect.then(function() {
  11. let Col = mongoose.connection.db.collection('statis_mock');
  12. Col.createIndex({
  13. interface_id: 1
  14. });
  15. Col.createIndex({
  16. project_id: 1
  17. });
  18. Col.createIndex({
  19. group_id: 1
  20. });
  21. Col.createIndex({
  22. time: 1
  23. });
  24. Col.createIndex({
  25. date: 1
  26. });
  27. });
  28. this.bindHook('add_router', function(addRouter) {
  29. addRouter({
  30. controller: controller,
  31. method: 'get',
  32. path: 'statismock/count',
  33. action: 'getStatisCount'
  34. });
  35. addRouter({
  36. controller: controller,
  37. method: 'get',
  38. path: 'statismock/get',
  39. action: 'getMockDateList'
  40. });
  41. addRouter({
  42. controller: controller,
  43. method: 'get',
  44. path: 'statismock/get_system_status',
  45. action: 'getSystemStatus'
  46. });
  47. addRouter({
  48. controller: controller,
  49. method: 'get',
  50. path: 'statismock/group_data_statis',
  51. action: 'groupDataStatis'
  52. });
  53. });
  54. // MockServer生成mock数据后触发
  55. this.bindHook('mock_after', function(context) {
  56. let interfaceId = context.interfaceData._id;
  57. let projectId = context.projectData._id;
  58. let groupId = context.projectData.group_id;
  59. //let ip = context.ctx.originalUrl;
  60. let ip = yapi.commons.getIp(context.ctx);
  61. let data = {
  62. interface_id: interfaceId,
  63. project_id: projectId,
  64. group_id: groupId,
  65. time: yapi.commons.time(),
  66. ip: ip,
  67. date: commons.formatYMD(new Date())
  68. };
  69. let inst = yapi.getInst(statisModel);
  70. try {
  71. inst.save(data).then();
  72. } catch (e) {
  73. yapi.commons.log('mockStatisError', e);
  74. }
  75. });
  76. };