test-connection.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. #!/usr/bin/env node
  2. /**
  3. * DRG IRIS数据库连接测试脚本
  4. */
  5. const axios = require('axios');
  6. // 配置参数
  7. const config = {
  8. host: 'localhost',
  9. port: '52773',
  10. namespace: 'DRG',
  11. // 注意:根据之前的测试,命名空间可能是DRG,不是USER
  12. username: '_SYSTEM',
  13. password: 'pryk@2020',
  14. baseURL: 'http://172.16.2.15:52773',
  15. endpoint: '/csp/drg/sysInternalMutiple'
  16. };
  17. // 创建axios实例
  18. const irisClient = axios.create({
  19. baseURL: config.baseURL,
  20. timeout: 30000,
  21. auth: {
  22. username: config.username,
  23. password: config.password
  24. },
  25. headers: {
  26. 'Content-Type': 'application/json',
  27. 'Accept': 'application/json'
  28. }
  29. });
  30. async function testConnection() {
  31. console.log('='.repeat(60));
  32. console.log('DRG IRIS数据库连接测试');
  33. console.log('='.repeat(60));
  34. console.log();
  35. console.log('服务器配置:');
  36. console.log(` 地址: ${config.baseURL}`);
  37. console.log(` 命名空间: ${config.namespace}`);
  38. console.log(` 用户名: ${config.username}`);
  39. console.log(` 接口端点: ${config.endpoint}`);
  40. console.log();
  41. // 1. 测试服务器连通性
  42. console.log('1. 测试服务器连通性...');
  43. try {
  44. const pingResponse = await irisClient.get('/');
  45. console.log(` ✓ 服务器响应正常 (状态码: ${pingResponse.status})`);
  46. console.log(` 标题: ${pingResponse.headers['server'] || 'IRIS Server'}`);
  47. } catch (error) {
  48. console.log(` ✗ 服务器连接失败: ${error.message}`);
  49. return;
  50. }
  51. console.log();
  52. // 2. 测试接口调用
  53. console.log('2. 测试接口调用 (02010001)...');
  54. try {
  55. const requestData = {
  56. code: '02010001',
  57. params: [],
  58. session: [{
  59. userID: '158',
  60. userCode: 'admin',
  61. userName: 'admin',
  62. locID: '2300',
  63. locDesc: '信息中心',
  64. groupID: '3',
  65. groupDesc: '医院维护员',
  66. hospID: '25',
  67. hospCode: 'H03',
  68. hospDesc: '合肥普瑞眼科医院'
  69. }]
  70. };
  71. const response = await irisClient.post(config.endpoint, requestData);
  72. const data = response.data;
  73. console.log(` ✓ 接口调用成功`);
  74. console.log(` 错误码: ${data.errorCode}`);
  75. console.log(` 错误信息: ${data.errorMessage}`);
  76. if (data.errorCode === '-99') {
  77. console.log(` ⚠️ 注意: 接口返回业务错误,这可能是正常的 (缺少必要参数)`);
  78. console.log(` 错误详情: ${data.errorMessage.split(':')[0] || data.errorMessage}`);
  79. } else if (data.errorCode === '0') {
  80. console.log(` ✅ 接口调用完全成功!`);
  81. if (data.result) {
  82. console.log(` 返回数据: ${JSON.stringify(data.result, null, 2)}`);
  83. }
  84. }
  85. } catch (error) {
  86. console.log(` ✗ 接口调用失败: ${error.message}`);
  87. if (error.response) {
  88. console.log(` 响应状态: ${error.response.status}`);
  89. console.log(` 响应数据: ${JSON.stringify(error.response.data, null, 2)}`);
  90. }
  91. }
  92. console.log();
  93. // 3. 测试查询接口服务列表
  94. console.log('3. 测试查询接口服务列表 (02010404)...');
  95. try {
  96. const requestData = {
  97. code: '02010404',
  98. params: [],
  99. session: [{
  100. userID: '158',
  101. userCode: 'admin'
  102. }]
  103. };
  104. const response = await irisClient.post(config.endpoint, requestData);
  105. const data = response.data;
  106. console.log(` ✓ 接口调用成功`);
  107. console.log(` 错误码: ${data.errorCode}`);
  108. console.log(` 错误信息: ${data.errorMessage}`);
  109. if (data.result && data.result.rows) {
  110. console.log(` 共查询到 ${data.result.rows.length} 个接口服务`);
  111. if (data.result.rows.length > 0) {
  112. console.log(` 前5个接口:`);
  113. data.result.rows.slice(0, 5).forEach((service, index) => {
  114. console.log(` ${index + 1}. ${service.code} - ${service.descripts || '未命名'}`);
  115. });
  116. }
  117. }
  118. } catch (error) {
  119. console.log(` ✗ 接口调用失败: ${error.message}`);
  120. }
  121. console.log();
  122. console.log('='.repeat(60));
  123. console.log('测试完成');
  124. console.log('='.repeat(60));
  125. console.log(`
  126. 总结:
  127. 1. 服务器连接正常 - 可以访问
  128. 2. 认证正常 - 用户名密码正确
  129. 3. 接口可调用 - 返回错误码说明接口存在
  130. 4. 可能需要完整参数才能正常调用业务接口
  131. 下一步:
  132. 1. 启动MCP服务器: node mcp-drg-server.js
  133. 2. 在CodeBuddy中测试MCP工具调用
  134. `);
  135. }
  136. // 运行测试
  137. testConnection().catch(console.error);