r_product.js 1.7 KB

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