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);
};
node调用后台接口的代码
猜你喜欢
转载自blog.csdn.net/wyqwilliam/article/details/84064671
今日推荐
周排行