index.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. // 引入所需模块
  2. const express = require('express');
  3. const bodyParser = require('body-parser');
  4. const pgp = require('pg-promise')();
  5. const db = pgp('postgresql://web3:666@web2023.fmode.cn:25432/dev');
  6. // 创建Express应用
  7. const app = express();
  8. app.use(bodyParser.json());
  9. // 会员账号注册接口
  10. /**
  11. * @api {post} /register 会员账号注册接口
  12. * @apiName Register
  13. * @apiGroup Member
  14. *
  15. * @apiParam {String} mobile 手机号
  16. * @apiParam {String} code 验证码
  17. * @apiParam {String} inviteId 邀请人ID
  18. *
  19. * @apiSuccess {Object} data 注册结果信息
  20. */
  21. app.post('/register', async (req, res) => {
  22. const { mobile, code, inviteId } = req.body;
  23. // 验证请求参数
  24. if (!mobile || !code || !inviteId) {
  25. return res.status(400).json({ error: '缺少必要参数' });
  26. }
  27. try {
  28. // 查询邀请人信息
  29. const inviteMember = await db.oneOrNone('SELECT * FROM "Member" WHERE "objectId" = $1', inviteId);
  30. if (!inviteMember) {
  31. return res.status(400).json({ error: '邀请人不存在' });
  32. }
  33. // 插入新会员信息
  34. const newMember = await db.one(
  35. 'INSERT INTO "Member" ("objectId", "mobile", "registerDate", "invite", "invitePath", "inviteDate") VALUES ($1,$2,$3,$4,$5,$6) RETURNING *',
  36. [mobile, mobile, new Date(), inviteId, null, null]
  37. );
  38. res.json({ data: newMember });
  39. } catch (error) {
  40. console.error('注册失败:', error);
  41. res.status(500).json({ error: '注册失败' });
  42. }
  43. });
  44. // 建立邀请关系接口
  45. /**
  46. * @api {get} /invite 建立邀请关系接口
  47. * @apiName Invite
  48. * @apiGroup Invite
  49. *
  50. * @apiParam {String} inviterId 邀请人ID
  51. * @apiParam {String} inviteeId 被邀请人ID
  52. *
  53. * @apiSuccess {Object} data 建立邀请关系结果信息
  54. */
  55. app.get('/invite', async (req, res) => {
  56. // 实现建立邀请关系逻辑
  57. });
  58. // 邀请数据统计接口
  59. /**
  60. * @api {get} /stats 邀请数据统计接口
  61. * @apiName Stats
  62. * @apiGroup Invite
  63. *
  64. * @apiParam {String} userId 当前用户ID
  65. *
  66. * @apiSuccess {Object} data 统计数据
  67. */
  68. app.get('/stats', async (req, res) => {
  69. // 实现统计数据逻辑
  70. });
  71. // 邀请用户列表接口
  72. /**
  73. * @api {get} /userlist 邀请用户列表接口
  74. * @apiName UserList
  75. * @apiGroup Invite
  76. *
  77. * @apiParam {String} userId 当前用户ID
  78. *
  79. * @apiSuccess {Object} data 用户列表信息
  80. */
  81. app.get('/userlist', async (req, res) => {
  82. // 实现用户列表逻辑
  83. });
  84. // 启动Express服务器
  85. const PORT = 3000;
  86. app.listen(PORT, () => {
  87. console.log(`Server is running on port ${PORT}`);
  88. });