request_call_function.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. 'use strict';
  2. const httpclient = require('urllib');
  3. const { port, method, args, property, needResult } = JSON.parse(process.argv[2]);
  4. const url = `http://127.0.0.1:${port}/__egg_mock_call_function`;
  5. httpclient.request(url, {
  6. method: 'POST',
  7. data: {
  8. method,
  9. args,
  10. property,
  11. needResult,
  12. },
  13. contentType: 'json',
  14. dataType: 'json',
  15. }, (err, data) => {
  16. if (err) {
  17. // ignore ECONNREFUSED error on mockRestore
  18. if (method === 'mockRestore' && err.message.includes('ECONNREFUSED')) {
  19. process.exit(0);
  20. }
  21. console.error('POST %s error, method: %s, args: %j', url, method, args);
  22. console.error(err.stack);
  23. // ignore all error on mockRestore
  24. if (method === 'mockRestore') {
  25. process.exit(0);
  26. } else {
  27. process.exit(1);
  28. }
  29. }
  30. if (!data.success) {
  31. console.error('POST %s error, method: %s, args: %j', url, method, args);
  32. if (data.error) {
  33. console.error(data.error);
  34. } else if (data.message) {
  35. const err = new Error(data.message);
  36. err.stack = data.stack;
  37. console.error(err);
  38. }
  39. process.exit(2);
  40. }
  41. if (data.result) {
  42. console.log('%j', data.result);
  43. }
  44. process.exit(0);
  45. });