r_product.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. const router = require('express').Router();
  2. const {paramFail, ServerError, success, controlError, searchSuccess} = require("../tools/result");
  3. const c = require('../control/product');
  4. const log = require("../logger").logger("r_product","info")
  5. const typeTool = require('../tools/typeTool');
  6. /**
  7. * 加载产品列表,根据类型
  8. * @param key query 产品类别
  9. * @param p query 页码
  10. * @param l query 每页数量
  11. */
  12. router.get('/load',
  13. async (req, res) => {
  14. try{
  15. let err, result;
  16. let {key, l, p} = req.query;
  17. if(!key){
  18. paramFail(res, "key is required");
  19. return;
  20. }
  21. // console.log(key);
  22. // log.info(key);
  23. [err, result] = await c.loadProduct(key, p, l);
  24. if(err){ return controlError(res, err, null);}
  25. success(res, result);
  26. }catch (e) {
  27. ServerError(res, null, e.message);
  28. }
  29. });
  30. router.get(
  31. '/search',
  32. async (req, res) => {
  33. try{
  34. let err, result;
  35. let {key, l, p, type} = req.query;
  36. type = type || 'all';
  37. l = typeTool.toNumber(l);
  38. p = typeTool.toNumber(p);
  39. log.info(`page=${p},limit=${l}`);
  40. [err, result] = await c.searchProduct(type, key, p, l);
  41. if(err){
  42. return controlError(res, err, null);}
  43. log.info(`result len=${result.arr.length}`)
  44. searchSuccess(res,
  45. result.arr,
  46. result.total,
  47. result.page,
  48. result.limit,
  49. );
  50. }catch (e) {
  51. ServerError(res, null, e.message);
  52. }
  53. });
  54. /**
  55. * 获取产品信息
  56. * @param id path 产品id
  57. */
  58. router.get('/:id', async (req, res) => {
  59. try{
  60. let err, result;
  61. let {id} = req.params;
  62. if(!id){
  63. paramFail(res, "id is required");
  64. return;
  65. }
  66. id = typeTool.toNumber(id);
  67. log.info(`product info ${id}`);
  68. [err, result] = await c.getProductInfo(id);
  69. if(err){ return controlError(res, err, null);}
  70. success(res, result);
  71. }catch (e) {
  72. ServerError(res, null, e.message);
  73. }
  74. });
  75. module.exports = router ;