GetArticle.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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.content,
  26. a.views,
  27. a.time,
  28. u.username AS author
  29. FROM
  30. article a
  31. LEFT JOIN
  32. users u
  33. ON
  34. a.author = u.uuid
  35. WHERE
  36. a.state = 1 AND a.id = ?
  37. `
  38. let rows = await db.query(sql, [id])
  39. if (!rows || rows.length !== 1)
  40. return res.json({
  41. ...BaseStdResponse.MISSING_FILE,
  42. msg: '文章不存在或无查看权限'
  43. })
  44. res.json({
  45. ...BaseStdResponse.OK,
  46. data: rows
  47. })
  48. }
  49. }
  50. module.exports.GetArticle = GetArticle;