pbl.js 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. // ROUTES FOR OUR APIselectClassStudent
  2. // =============================================================================
  3. const express = require("express");
  4. const request = require("request");
  5. const bcrypt = require("bcryptjs");
  6. const router = express.Router(); // get an instance of the express Router
  7. const querystring = require("querystring");
  8. var mysql = require("./mysql");
  9. // const _mysqlLabor = ["123.58.32.151", "pbl"]; //edu數據庫信息
  10. // const _mysqluser = ["123.58.32.151", "cocorobouser"]; //用户数据库信息
  11. // const _getmysqlLabor = ["123.58.32.151", "pbl"]; //edu數據庫信息
  12. // const _getmysqluser = ["123.58.32.151", "cocorobouser"]; //edu數據庫信息
  13. const _mysqlLabor = ["172.16.12.5", "pbl"]; //edu數據庫信息
  14. const _mysqluser = ["172.16.12.5", "cocorobouser"]; //edu數據庫信息
  15. // const _getmysqlLabor = ["172.16.12.5", "pbl"]; //edu數據庫信息
  16. // const _getmysqluser = ["172.16.12.5", "cocorobouser"]; //edu數據庫信息
  17. const _getmysqlLabor2 = ["172.16.12.7", "pbl"]; //edu數據庫信息
  18. const _getmysqlLabor = ["172.16.12.7", "pbl"]; //edu數據庫信息
  19. const _getmysqluser = ["172.16.12.7", "cocorobouser"]; //edu數據庫信息
  20. const _localhost = ["127.0.0.1", "pbl"]; //edu數據庫信息
  21. const crypto = require("crypto");
  22. const https = require("https");
  23. const { Pool } = require('pg');
  24. const axios = require('axios');
  25. const loginHandler = require('./login'); // 确保路径正确
  26. const { r2rClient } = require("r2r-js");
  27. const client = new r2rClient("https://r2rserver.cocorobo.cn/");
  28. router.route("/login").all(async (req, res, next) => {
  29. loginHandler(req, res)
  30. });
  31. router.route("/logout").all(async (req, res, next) => {
  32. try {
  33. const response = await client.users.logout();
  34. res.status(200).json({result: response.results});
  35. } catch (error) {
  36. res.status(500).json({error: error instanceof Error ? error.message : "An error occurred"});
  37. }
  38. });
  39. router.route("/getDocument").all(async (req, res, next) => {
  40. try {
  41. const response = await client.documents.list({
  42. limit: 10,
  43. offset: 0,
  44. });
  45. console.log(response);
  46. res.status(200).json({ result: response.results });
  47. } catch (error) {
  48. res.status(500).json({ error: error instanceof Error ? error.message : "An error occurred" });
  49. }
  50. });
  51. //列出文档块
  52. router.route("/listChunks").all(async (req, res, next) => {
  53. try {
  54. const response = await client.documents.listChunks({
  55. id: "5111165f-965c-5d61-89e3-1f74b0178032",
  56. });
  57. console.log(response);
  58. res.status(200).json({ result: response.results });
  59. } catch (error) {
  60. res.status(500).json({ error: error instanceof Error ? error.message : "An error occurred" });
  61. }
  62. });
  63. //提取实体和关系
  64. router.route("/extract").all(async (req, res, next) => {
  65. try {
  66. const response = await client.documents.extract({ id: "5111165f-965c-5d61-89e3-1f74b0178032" })
  67. console.log(response);
  68. res.status(200).json({ result: response.results });
  69. } catch (error) {
  70. res.status(500).json({ error: error instanceof Error ? error.message : "An error occurred" });
  71. }
  72. });
  73. router.route("/selectUser").all((req, res, next) => {
  74. var json = queryString(req.url);
  75. getmysql(req, res, "selectUser", json["userid"]);
  76. });
  77. function generateAPIKey(username) {
  78. let timeStamp = new Date().getTime();
  79. let hashStr = timeStamp + username;
  80. let digest = crypto
  81. .createHash("sha256")
  82. .update(hashStr, "utf8")
  83. .digest("hex");
  84. return digest;
  85. }
  86. queryString = function(url) {
  87. var a = url.split("?");
  88. var json = querystring.parse(a[1]);
  89. return json;
  90. };
  91. //post存儲過程處理
  92. postmysql = function(req, res, functionname) {
  93. //mode的處理
  94. if (req.body[0]) {
  95. p = Object.values(req.body[0]);
  96. p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname);
  97. //執行存儲過程
  98. mysql.usselect(p, function(ret) {
  99. res.end(JSON.stringify(ret));
  100. });
  101. }
  102. };
  103. //post存儲過程處理
  104. postmysql2 = function(req, res, functionname) {
  105. //mode的處理
  106. if (req.body) {
  107. p = Object.values(req.body)[0].split(",");
  108. p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname);
  109. //執行存儲過程
  110. mysql.usselect(p, function(ret) {
  111. res.end(JSON.stringify(ret));
  112. });
  113. }
  114. };
  115. //post存儲過程處理
  116. postmysql3 = function(req, res, functionname) {
  117. //mode的處理
  118. if (req.body) {
  119. p = Object.values(req.body);
  120. p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname);
  121. //執行存儲過程
  122. mysql.usselect(p, function(ret) {
  123. res.end(JSON.stringify(ret));
  124. });
  125. }
  126. };
  127. //get獲取數據庫信息
  128. getmysql = function(req, res, functionname, ...p) {
  129. p = p || [];
  130. p.unshift(_getmysqlLabor[0], _getmysqlLabor[1], functionname);
  131. //執行存儲過程
  132. mysql.usselect(p, function(ret) {
  133. res.end(JSON.stringify(ret));
  134. }); //
  135. };
  136. //get獲取數據庫信息
  137. getmysql2 = function(req, res, functionname, ...p) {
  138. p = p || [];
  139. p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname);
  140. //執行存儲過程
  141. mysql.usselect(p, function(ret) {
  142. res.end(JSON.stringify(ret));
  143. }); //
  144. };
  145. //get獲取數據庫信息
  146. getmysql3 = function(req, res, functionname, ...p) {
  147. p = p || [];
  148. p.unshift(_getmysqlLabor2[0], _getmysqlLabor2[1], functionname);
  149. //執行存儲過程
  150. mysql.usselect(p, function(ret) {
  151. res.end(JSON.stringify(ret));
  152. }); //
  153. };
  154. //post存储过程处理
  155. userpostmysql = function(req, res, functionname) {
  156. //mode的处理
  157. if (req.body.mode) {
  158. p = req.body.mode.split(",");
  159. p.unshift(_mysqluser[0], _mysqluser[1], functionname);
  160. //执行存储过程
  161. mysql.usselect(p, function(ret) {
  162. res.end(JSON.stringify(ret));
  163. });
  164. }
  165. };
  166. //get获取数据库信息
  167. usergetmysql = function(req, res, functionname, ...p) {
  168. p = p || [];
  169. p.unshift(_mysqluser[0], _mysqluser[1], functionname);
  170. //执行存储过程
  171. mysql.usselect(p, function(ret) {
  172. res.end(JSON.stringify(ret));
  173. }); //
  174. };
  175. //post存儲過程處理
  176. postmysqlLocal = function(req, res) {
  177. //mode的處理
  178. if (req.body[0]) {
  179. p = Object.values(req.body[0]);
  180. p.unshift(_localhost[0], _localhost[1]);
  181. //執行存儲過程
  182. mysql.usselect(p, function(ret) {
  183. res.end(JSON.stringify(ret));
  184. });
  185. }
  186. };
  187. postmysqlOnline = function(req, res) {
  188. //mode的處理
  189. if (req.body[0]) {
  190. p = Object.values(req.body[0]);
  191. p.unshift(_mysqlLabor[0], _mysqlLabor[1]);
  192. //執行存儲過程
  193. mysql.usselect(p, function(ret) {
  194. res.end(JSON.stringify(ret));
  195. });
  196. }
  197. };
  198. module.exports = router;