GetArticle.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. const API = require("../../lib/API");
  2. const db = require("../../plugin/DataBase/db");
  3. const { BaseStdResponse } = require("../../BaseStdResponse");
  4. class GetArticle extends API {
  5. constructor() {
  6. super();
  7. this.setPath('/Article')
  8. this.setMethod('GET')
  9. }
  10. async onRequest(req, res) {
  11. let { id } = req.query
  12. if (!id) {
  13. res.json({
  14. ...BaseStdResponse.MISSING_PARAMETER,
  15. endpoint: 153123
  16. });
  17. return;
  18. }
  19. let sql = 'UPDATE article SET views = views + 1 WHERE state = 1 AND id = ?'
  20. await db.query(sql, [id])
  21. sql = `
  22. SELECT
  23. a.id,
  24. a.title,
  25. a.cover,
  26. a.\`describe\`,
  27. a.content,
  28. a.type,
  29. a.views,
  30. a.time,
  31. u.username AS author
  32. FROM
  33. article a
  34. LEFT JOIN
  35. users u
  36. ON
  37. a.author = u.uuid
  38. WHERE
  39. a.state = 1 AND a.id = ?
  40. `
  41. let rows = await db.query(sql, [id])
  42. if (!rows || rows.length !== 1)
  43. return res.json({
  44. ...BaseStdResponse.MISSING_FILE,
  45. msg: '文章不存在或无查看权限'
  46. })
  47. res.json({
  48. ...BaseStdResponse.OK,
  49. data: rows
  50. })
  51. }
  52. }
  53. module.exports.GetArticle = GetArticle;