r_news.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. const router = require('express').Router();
  2. const {paramFail, ServerError, success, controlError, searchSuccess} = require("../tools/result");
  3. const c_solution = require("../control/c_solution");
  4. const typeTool = require("../tools/typeTool_cjs");
  5. const c = require("../control/c_news");
  6. const {isEmpty} = require("../tools/typeTool_cjs");
  7. const log = require("../logger").logger("r_news","info");
  8. router.get(
  9. '/search',
  10. async (req, res) => {
  11. try{
  12. let err, result;
  13. let {key, l, p, type} = req.query;
  14. type = type || 'all';
  15. l = typeTool.toNumber(l);
  16. p = typeTool.toNumber(p);
  17. log.info(`page=${p},limit=${l}`);
  18. [err, result] = await c_solution.searchNews(type, key, p, l);
  19. if(err){
  20. return controlError(res, err, null);}
  21. log.info(`result len=${result.arr.length}`)
  22. searchSuccess(res,
  23. result.arr,
  24. result.total,
  25. result.page,
  26. result.limit,
  27. );
  28. }catch (e) {
  29. ServerError(res, null, e.message);
  30. }
  31. });
  32. router.get(
  33. '/pages',
  34. async (req, res) => {
  35. try{
  36. log.info(`获取所有文章接口`)
  37. let err, result;
  38. let {key, l, p, type ,pType} = req.query;
  39. type = type || 'all';
  40. l = typeTool.toNumber(l);
  41. p = typeTool.toNumber(p);
  42. log.info(`key=${key} pTYpe=${pType} page=${p},limit=${l}`);
  43. [err, result] = await c_solution.searchAllNews(pType, type, key, p, l);
  44. if(err){
  45. return controlError(res, err, null);}
  46. log.info(`result len=${result.arr.length}`)
  47. searchSuccess(res,
  48. result.arr,
  49. result.total,
  50. result.page,
  51. result.limit,
  52. );
  53. }catch (e) {
  54. ServerError(res, null, e.message);
  55. }
  56. });
  57. router.get('/mini', async (req, res) => {
  58. try{
  59. log.info(`[搜索文章] 只获取基础值`)
  60. let err, result;
  61. let {key, l, p, type} = req.query;
  62. type = type || 'all';
  63. l = typeTool.toNumber(l);
  64. p = typeTool.toNumber(p);
  65. log.info(`page=${p},limit=${l}`);
  66. [err, result] = await c.searchNewsByMini(type, key, p, l);
  67. if(err){
  68. log.info(`[搜索文章] err=${err}`);
  69. return controlError(res, err, null);}
  70. log.info(`result len=${result.arr.length}`)
  71. searchSuccess(res,
  72. result.arr,
  73. result.total,
  74. result.page,
  75. result.limit,
  76. );
  77. }catch (e) {
  78. ServerError(res, null, e.message);
  79. }
  80. });
  81. router.get('/read',async(req,res)=>{
  82. try{
  83. let err, result;
  84. let {id} = req.query;
  85. id = typeTool.toNumber(id);
  86. if(!id){
  87. paramFail(res, "id is required");
  88. return;
  89. }
  90. [err, result] = await c.addReadNum(id);
  91. if(err){ return controlError(res, err, null);}
  92. success(res, result);
  93. }catch (e) {
  94. ServerError(res, null, e.message);
  95. }
  96. })
  97. router.post('/add',async(req,res)=>{
  98. try{
  99. let err, result;
  100. let {
  101. type, pType, title, author,
  102. source, cover, remark, content
  103. } = req.body;
  104. [err, result] = await c.addReadNum(id);
  105. if(err){ return controlError(res, err, null);}
  106. success(res, result);
  107. }catch (e) {
  108. ServerError(res, null, e.message);
  109. }
  110. });
  111. module.exports = router;