node-grap-data

by whitewolf

JavaScript

var http = require('http');
var fs = require('fs');

var handler = function () {

    //js coverage handler
    var jsCoverageHandler = function (req, res) {
        var options = {
            host:'vbnedsuper4001',
            port:80,
            path:'/jenkins/job/super-online-jsunit/HTML_Coverage_Report/index.html'
        };

        http.get(options,function (response) {
            res.writeHead(200, {'Content-Type':'text/plain'});
            var html = "";
            response.on("data",function (chunk) {
                html += chunk;
            }).on("end", function () {
//                    console.log(html);
                    html = getCoverage(html);
//                    res.write("abc");
                    res.write(html);
                    res.end();
                });
            console.log("Got response: " + response.statusCode);
        }).on('error', function (e) {
                res.writeHead(500, {'Content-Type':'text/plain'});
                res.end("get js coverage report error!");
                console.log("Got error: " + e.message);
            });

        function getCoverage(htmlString) {
            console.log("htmlString: " + htmlString);

            var statementReg = /\sStatements: <span class='metric'>\d{2}.\d{1,2}/
            var statementStr = statementReg.exec(htmlString);
            console.log("statement: " + statementStr);
            return statementStr;
        }
    };

    // default handler:not implements
    var defaultHandler = function (req, res) {
        res.writeHead(200, {'Content-Type':'text/plain'});
        res.end("not implements!");
    };

/////////////////////////////////////////////////////////////////////////////
    var route = function (req, res) {
        var url = req.url;

        switch (url) {
            case "/js/coverage":
                jsCoverageHandler(req, res);
                break;
            default :
                defaultHandler(req, res);
               ...