mysql.ts 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. import md5 from 'md5-node'
  2. import jwt from "jsonwebtoken"
  3. import jwtSecret from "../../config"
  4. import Logger from "../../loaders/logger"
  5. import { Request, Response } from "express"
  6. import { createMathExpr } from "svg-captcha"
  7. import { connection } from '../../utils/initMysql'
  8. export interface dataModel {
  9. length: number
  10. }
  11. // 保存验证码
  12. let verify: number | string
  13. /**
  14. * @typedef Point
  15. * @property {string} username.required - 用户名
  16. * @property {string} password.required - 密码
  17. * @property {string} verify.required - 验证码
  18. */
  19. /**
  20. * @typedef Error
  21. * @property {string} code.required
  22. */
  23. /**
  24. * @typedef Response
  25. * @property {[integer]} code
  26. */
  27. /**
  28. * 登录
  29. * @route POST /login
  30. * @param {Point.model} point.body.required - the new point
  31. * @produces application/json application/xml
  32. * @consumes application/json application/xml
  33. * @returns {Response.model} 200
  34. * @returns {Array.<Point>} Point
  35. * @headers {integer} 200.X-Rate-Limit
  36. * @headers {string} 200.X-Expires-After
  37. * @security JWT
  38. */
  39. const login = async (req: Request, res: Response) => {
  40. console.log(req.body)
  41. // if (verify !== req.query.verify) return res.json({
  42. // code: -1,
  43. // info: "请输入正确的验证码"
  44. // })
  45. //生成jwt(token令牌) {expiresIn:3600}为token的过期时间,这里设置的是1小时
  46. // const accessToken = jwt.sign({
  47. // accountId: account.id
  48. // }, settings.accessTokenSecret, { expiresIn: 3600 })
  49. // const idToken = jwt.sign({
  50. // sub: account.id,
  51. // preferred_username: account.username
  52. // }, "some secret that doesn't matter")
  53. // //返回token
  54. // response.status(200).json({
  55. // access_token: accessToken,
  56. // id_token: idToken
  57. // })
  58. // accessToken
  59. }
  60. /**
  61. * 注册
  62. * @route POST /register
  63. * @summary 注册
  64. * @group register - 注册
  65. * @param {string} username.query.required - username
  66. * @param {string} password.query.required - password
  67. * @param {string} verify.query.required - verify
  68. * @returns {object} 200
  69. * @security JWT
  70. */
  71. const register = async (req: Request, res: Response) => {
  72. if (verify !== req.query.verify) return res.json({
  73. code: -1,
  74. info: "请输入正确的验证码"
  75. })
  76. let sql: string = 'select * from users where username=' + "'" + req.query.username + "'"
  77. connection.query(sql, async (err, data: dataModel) => {
  78. if (data.length > 0) {
  79. await res.json({
  80. code: -1,
  81. info: "账号已被注册"
  82. })
  83. } else {
  84. let sql: string = 'insert into users (username,password) value(' + "'" + req.query.username + "'" + ',' + "'" + req.query.password +
  85. "'" + ')'
  86. connection.query(sql, async function (err) {
  87. if (err) {
  88. Logger.error(err)
  89. } else {
  90. await res.json({
  91. code: 0,
  92. info: "账号注册成功"
  93. })
  94. }
  95. })
  96. }
  97. })
  98. }
  99. /**
  100. * 列表更新
  101. * @route GET /updateList
  102. * @summary 列表更新
  103. * @group updateList - 列表更新
  104. * @returns {object} 200
  105. * @security JWT
  106. */
  107. const updateList = async (req: Request, res: Response) => {
  108. res.json({ code: 1, msg: "成功" })
  109. }
  110. /**
  111. * 列表删除
  112. * @route GET /deleteList
  113. * @summary 列表删除
  114. * @group deleteList - 列表删除
  115. * @returns {object} 200
  116. * @security JWT
  117. */
  118. const deleteList = async (req: Request, res: Response) => {
  119. res.json({ code: 1, msg: "成功" })
  120. }
  121. /**
  122. * 分页查询
  123. * @route GET /searchPage
  124. * @summary 分页查询
  125. * @group searchPage - 分页查询
  126. * @returns {object} 200
  127. * @security JWT
  128. * @returns {Error} default - Unexpected error
  129. */
  130. const searchPage = async (req: Request, res: Response) => {
  131. res.json({ code: 1, msg: "成功" })
  132. }
  133. /**
  134. * 模糊查询
  135. * @route GET /searchVague
  136. * @summary 模糊查询
  137. * @group searchVague - 模糊查询
  138. * @returns {object} 200
  139. * @security JWT
  140. */
  141. const searchVague = async (req: Request, res: Response) => {
  142. res.json({ code: 1, msg: "成功" })
  143. }
  144. /**
  145. * 图形验证码
  146. * @route GET /captcha
  147. * @summary 图形验证码
  148. * @group captcha - 图形验证码
  149. * @returns {object} 200
  150. * @security JWT
  151. */
  152. const captcha = async (req: Request, res: Response) => {
  153. const create = createMathExpr({
  154. mathMin: 1,
  155. mathMax: 4,
  156. mathOperator: "+"
  157. })
  158. verify = create.text
  159. res.type('svg') // 响应的类型
  160. res.json({ code: 1, msg: create.text, svg: create.data })
  161. }
  162. export {
  163. login,
  164. register,
  165. updateList,
  166. deleteList,
  167. searchPage,
  168. searchVague,
  169. captcha,
  170. }