content.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. var express = require('express');
  2. var router = express.Router();
  3. /* GET home page. */
  4. //文章类别对象
  5. var ContentCategory = require("../models/ContentCategory");
  6. //数据库操作对象
  7. var DbOpt = require("../models/Dbopt");
  8. // 文档对象
  9. var Content = require("../models/Content");
  10. //文章标签对象
  11. var ContentTags = require("../models/ContentTags");
  12. //留言对象
  13. var Message = require("../models/Message");
  14. //广告对象
  15. var Ads = require("../models/Ads");
  16. //站点配置
  17. var settings = require("../models/db/settings");
  18. var siteFunc = require("../models/db/siteFunc");
  19. var url = require('url');
  20. //二维码对象
  21. var qr = require('qr-image')
  22. //短id
  23. var shortid = require('shortid');
  24. //校验
  25. var validator = require("validator");
  26. //判断是否登录
  27. function isLogined(req){
  28. return req.session.logined;
  29. }
  30. //文档查询
  31. router.get('/searchResult/items', function(req, res, next) {
  32. querySearchResult(req, res);
  33. });
  34. //文档查询带分页
  35. router.get('/searchResult/:defaultUrl', function(req, res, next) {
  36. var defaultUrl = req.params.defaultUrl;
  37. if (defaultUrl.indexOf("—") >= 0) {
  38. var searchPageNo = (defaultUrl.split("—")[1]).split(".")[0];
  39. if(searchPageNo && validator.isNumeric(searchPageNo)){
  40. req.query.page = searchPageNo;
  41. }
  42. querySearchResult(req, res);
  43. }
  44. });
  45. function querySearchResult(req, res){
  46. var params = url.parse(req.url,true);
  47. var searchKey = params.query.searchKey;
  48. var area = params.query.area;
  49. var keyPr = [];
  50. var reKey = new RegExp(searchKey, 'i');
  51. // 模糊查询名称和内容
  52. if(area === "tags"){
  53. keyPr = {'tags' : { $regex: reKey } };
  54. }else{
  55. keyPr = [];
  56. keyPr.push({'comments' : { $regex: reKey } });
  57. keyPr.push({'tags' : { $regex: reKey } });
  58. keyPr.push({'title' : { $regex: reKey } })
  59. }
  60. siteFunc.renderToTargetPageByType(req,res,'search',{query : keyPr , searchKey : searchKey , page : 'searchTemp'});
  61. }
  62. //文章二维码生成(没用,暂时保留)
  63. router.get('/qrImg/show', function(req, res, next) {
  64. var params = url.parse(req.url,true);
  65. var detailLink = params.query.detailLink;
  66. try {
  67. var img = qr.image(detailLink,{size :10});
  68. res.writeHead(200, {'Content-Type': 'image/png'});
  69. img.pipe(res);
  70. } catch (e) {
  71. res.writeHead(414, {'Content-Type': 'text/html'});
  72. res.end('<h1>414 Request-URI Too Large</h1>');
  73. }
  74. });
  75. //查找指定广告
  76. router.get('/requestAds/ads/item', function(req, res, next) {
  77. var params = url.parse(req.url,true);
  78. var targetId = params.query.uid;
  79. if(shortid.isValid(targetId)){
  80. Ads.findOne({'_id' : targetId , 'state': '1'}).populate('items').exec(function (err,result) {
  81. if(err){
  82. res.next(err);
  83. }else{
  84. return res.json(result);
  85. }
  86. });
  87. }else{
  88. res.end(settings.system_illegal_param);
  89. }
  90. });
  91. module.exports = router;