12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- 'use strict';
- var express = require('express');
- var morgan = require('morgan');
- var bodyParser = require('body-parser');
- var _ = require('lodash');
- var app = express();
- var request = require('request');
- app.use(morgan('combined'));
- app.use(bodyParser.json());
- function setCORSHeaders(res) {
- res.setHeader("Access-Control-Allow-Origin", "*");
- res.setHeader("Access-Control-Allow-Methods", "POST");
- res.setHeader("Access-Control-Allow-Headers", "accept, content-type");
- }
- app.all('/', function(req, res) {
- setCORSHeaders(res);
- res.send('https://grafana.com/plugins/grafana-simple-json-datasource\n');
- res.end();
- });
- function search(url, body, res)
- {
- request.post(
- url,
- body,
- function (error, response, body) {
- if (!error && response.statusCode == 200) {
- if (result.length == 0) {
- result = JSON.parse(body);
- } else {
- result.concat(JSON.parse(body));
- }
-
- if (res) {
- setCORSHeaders(res);
- res.json(result);
- res.end();
- }
- } else {
- console.log(error);
- }
- }
- );
- }
- function query(url, req, res)
- {
- request.post({
- url: url,
- headers: req.headers,
- body: JSON.stringify(req.body)
- },
- function (error, response, body) {
- if (!error && response.statusCode == 200) {
- if (queryResult.length == 0) {
- queryResult = JSON.parse(body);
- } else {
- queryResult.concat(JSON.parse(body));
- }
-
- if (res) {
- setCORSHeaders(res);
- res.json(queryResult);
- res.end();
- }
- } else {
- console.log(error);
- }
- }
- );
- }
- var result = [];
- app.all('/search', function (req, res) {
- result = [];
- search('http://mysql_jsonendpoint:8000/search', req.body);
- search('http://mongodb_jsonendpoint:8000/search', req.body, res);
- });
- var queryResult = [];
- app.all('/query', function (req, res) {
- queryResult = [];
- query('http://mysql_jsonendpoint:8000/query', req);
- query('http://mongodb_jsonendpoint:8000/query', req, res);
- });
- app.listen(8000);
- console.log("Server is listening to port 8000");
|