node调用后台接口的代码

var body = require('body-parser');
var elasticsearch = require('elasticsearch');
var config = require('../../config/config');
var ELk_requestbody = require('../../config/ELk_util');
exports.gettablelist=function (req, res) {
    var index = req.query.index;
    var type = req.query.type;
    var objELkRequestBody = new ELk_requestbody.ELK_RequestBody();
    //设置index和type
    objELkRequestBody.SetESIndex(index).SetESType(type);
    if (req.query.sort)
        //设置排序,默认排序
        objELkRequestBody.SetSortField(req.query.sort);                                  //设置排序
    //设置排序,按照时间戳降序排序
    objELkRequestBody.SetSortField({"@timestamp": "desc"});                              // 默认按照时间戳排序
    //设置分页:起始页和每页的数量
    objELkRequestBody.SetPagingCfg(parseInt(req.query.page), parseInt(req.query.size));

    if ((req.query.begTime && req.query.begTime != "0") || (req.query.endTime && req.query.endTime != "0")) {
        //设置时间范围,起始时间和最终时间
        objELkRequestBody.SetTimeRange(req.query.begTime, req.query.endTime);              //设置时间范围
    }
    //精确查询查询 查询体
    if (req.query.search) {
        objELkRequestBody.SetQueryString(req.query.search);
    }

    //模糊查询--字符串
    if(req.query.FuzzyQueryString){
        objELkRequestBody.NoKeyQueryString(req.query.FuzzyQueryString);       //设置模糊查询
    }

    //设置精确查询
    //精确查询查询 查询体
    if (req.query.queryObj) {
        objELkRequestBody.SetQueryKey(req.query.queryObj);                   //设置精确查询
    }
    if( req.query.CombQuery){
        for( var key in req.query.CombQuery)
        {
            objELkRequestBody.SetCombQuery(key,null,req.query.CombQuery[key]);
        }
    }
    if(req.query.doubleFieldAggr){
          objELkRequestBody.SetDoubleAggr(objELkRequestBody.reqBody,req.query.doubleFieldAggr[0],req.query.doubleFieldAggr[1],req.query.doubleFieldAggr[2]);
    }
    //组合
    if( req.query.CombQuerys){
        if(typeof (req.query.CombQuerys) !== "object"){
            {
                req.query.CombQuerys = JSON.parse(req.query.CombQuerys)
            }
        }
        for( var key in req.query.CombQuerys)
        {
            objELkRequestBody.SetCombQuerys(key,null,req.query.CombQuerys[key]);
        }
    }
    if(req.query.CombQuerysNot){
        for( var key in req.query.CombQuerysNot)
        {
            objELkRequestBody.SetCombQuerys(key,"not",req.query.CombQuerysNot[key]);
        }
    }
    if(req.query.CombQuerysMust){
        for( var key in req.query.CombQuerysMust)
        {
            objELkRequestBody.SetCombQuerysMust(key,null,req.query.CombQuerysMust[key],req.query.CombQuerysMust['Must']);
        }
    }
//截止到现在,查询已经结束了,剩下的就是将查询的结果按照路由返回了。
    //发送请求获得响应体并封装
    objELkRequestBody.SendELKRequest(req, res, function (err, resp) {
        if (err) {
            console.trace(err.message);
        }
        else {
            //console.log(JSON.stringify(result));
            // if (resp.hits.hits.length <= 0){
            //     var logUtil = require('../../../../tools/LogUtil');
            //     return logUtil.getLatestLog(req, res, objELkRequestBody);
            // }
            var res_data = config.res_data(0);
            var hits = resp.hits.hits;
            res_data.data.total = resp.hits.total;
            var data = [];
            for (var i in hits) {
                data.push(hits[i])
            }
            res_data.data.rows = data;
            if(req.query.doubleFieldAggr){
                var buckets = resp.aggregations.sexprof.buckets;
                res_data.data['buckets']=buckets
            }
            config.cr_res_json(req, res, res_data);
        }
    });
};


// 获得ELK配置信息from config_for_win
exports.getConfigElkInfo=function (req, res){
    data = {
        //获取配置的地址
        elk_host:config.ELK.elk_host,
        //获取配置的端口号
        elk_port:config.ELK.elk_port
    }
    var res_data = config.res_data(0);
    res_data.data.rows = data;
    config.cr_res_json(req, res, res_data);
};

猜你喜欢

转载自blog.csdn.net/wyqwilliam/article/details/84064671
今日推荐